6

我通过 view.gone 隐藏 admob adview:

//adView.setClickable(false);
//adView.clearFocus();
//adView.setEnabled(false);
//adView.setFilterTouchesWhenObscured(true);
//adView.setFocusable(false);
//adView.setFocusableInTouchMode(false);
adView.setVisibility(View.GONE);
adView.startAnimation( animation );

这隐藏了广告,但 adview 本身仍然是可触摸的,所以如果我触摸 adview 的空间,它仍然会打开浏览器并将我重定向到广告,尽管广告本身是不可见的。

如何也禁用触摸事件?我已经尝试了上面的所有行,但没有一个行得通。

有什么建议吗?

4

3 回答 3

6

在大多数情况下,在视图层次结构中设置adView.setVisibility(View.GONE)和删除 AdMob 视图会隐藏广告并阻止用户交互。

不要忘记在显示广告的 Activity 完成(销毁)时结束 AdView 生命周期。来自 AdMob SDK Javadoc:

公共无效销毁()

销毁 AdView。调用此方法后,不应再使用 AdView。

destroy()在 Activity 的回调onDestroy()中调用:

@Override
public void onDestroy() {
    if (adView != null) {
        adView.destroy();
    }
super.onDestroy();
}
于 2012-08-21T10:18:42.240 回答
5

尝试根据需要使用 setOnTouchListener 和 Override onTouch。您也可以使用 removeView():

LinearLayout linLay = (LinearLayout)findViewById(R.id.ad_layout);
linLay.removeView(adView); 
LinearLayout.LayoutParams params = new  LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);
linLay.addView(adView, params);

并在需要时将其添加回来。

于 2012-04-22T22:09:35.950 回答
0
final com.google.ads.AdView ad = (AdView) findViewById(R.id.rect_ad);
   if ( ad != null) {
            ad.stopLoading();
            ad.destroy();
            getWindowManager().removeView(ad);
   }

即使这段代码也不会破坏 AdMob =((( 我有它的 Handler 和 WebView 在内存中保存我的活动

于 2013-09-30T20:46:05.833 回答