我通过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 );
这会隐藏广告,但广告本身仍然可以触摸,因此如果我触摸广告的空间,它仍然会打开浏览器并将我重定向到广告,尽管广告本身不可见。
如何禁用触控事件?我已经尝试了上面的所有行,但没有一个工作。
有什么建议吗?
答案 0 :(得分:6)
设置adView.setVisibility(View.GONE)
并从视图层次结构中移除AdMob视图会隐藏广告并阻止用户在大多数情况下进行互动。
当显示广告的活动完成(销毁)时,不要忘记结束AdView生命周期。来自AdMob SDK Javadoc:
public void destroy()
销毁AdView。调用此方法后,不应再使用AdView。
在活动的destroy()
回调中致电onDestroy()
:
@Override
public void onDestroy() {
if (adView != null) {
adView.destroy();
}
super.onDestroy();
}
答案 1 :(得分: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);
并在需要时将其添加回来。
答案 2 :(得分: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来保存我的活动