如何隐藏/禁用admob adview?

Tam*_*mas 6 android view admob adview

我通过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 );
Run Code Online (Sandbox Code Playgroud)

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

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

有什么建议?

mja*_*ama 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();
}
Run Code Online (Sandbox Code Playgroud)


jum*_*r0k 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);
Run Code Online (Sandbox Code Playgroud)

并在需要时添加回来.