【问题标题】:Admob view set to GONE keeps receiving clicksAdmob 视图设置为 GONE 不断收到点击
【发布时间】:2012-05-16 00:52:34
【问题描述】:

请注意:目前没有使用任何 XML 进行布局!我不想改变这一点。

我的游戏中某个时刻出现了 Admob 横幅。我使用了this 教程。它工作正常。

现在,当我删除横幅时,它会消失。但是..它不断收到点击,阻止底层视图处理这些点击。 :(

我使用此代码删除广告横幅:

public static void HideAd() {
    AppelzActivity.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            AlphaAnimation animation = new AlphaAnimation(1.0f, 0.0f);
            animation.setDuration(400);
            animation.setFillAfter(true);
            animation.setInterpolator(new AccelerateInterpolator());
            AppelzActivity.adView.startAnimation(animation);
            AppelzActivity.adView.setClickable(false);
            AppelzActivity.adView.setVisibility(View.GONE);

        }});
}

我认为 setClickable(false) 和 setVisibility(View.GONE) 就足够了。我还尝试了 setClickable(true),因为我发现了一个关于这个布尔值反过来工作的错误报告..:S

所以,当我调用 HideAd 时,广告肯定会消失(AlphaAnimation == 有效)。但是,当我点击广告曾经所在的区域时,它仍然会将我带到广告所代表的 URL。我希望该点击由用户可见的视图处理(就像我点击横幅所在区域之外的某个地方时所做的那样)..

谢谢!

【问题讨论】:

    标签: android-layout view admob visibility


    【解决方案1】:

    嗯。当我注释掉时它起作用了

        animation.setFillAfter(true);
    

    【讨论】:

    • 这可能是因为在上面的代码行中,动画直到结束后才会持续存在。但是当你试图隐藏视图时,它会以某种方式破坏动画。
    • 啊……我明白了,埃里克……所以你是说;如果我在确定动画结束时将视图设置为 GONE(例如 onAnimationEnd(Animation animation)),那没问题。我会试一试。不过,注释掉 setFillAfter 并没有打扰我。我的印象是我需要它,因为否则动画最终情况将无法维持。但是,因为我将其设置为 GONE,所以没关系。
    • 我实际上并不确定这种行为;这只是一个理论。但我想,由于您立即将视图设置为 GONE,因此您实际上并没有获得动画。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多