2017-09-23 86 views
0

我试图在方向更改时手动重新加载AdView。我能够发出请求并获得加回。问题是,当我尝试删除旧的视图,并添加一个新的,我得到这样的警告:Android AdView方向更改高度为0

W/Ads: Not enough space to show ad. Needs 592x32 dp, but only has 640x0 dp. 

和视图不显示。这是我的onConfigurationChanged方法:

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    Log.v(TAG, "onConfigurationChanged"); 
    super.onConfigurationChanged(newConfig); 
    ViewGroup.LayoutParams adViewParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); 

    adViewParent.removeView(adView); 
    adView.destroy(); 

    AdView newAdView = new AdView(this); 
    newAdView.setAdSize(AdSize.SMART_BANNER); 
    newAdView.setAdUnitId(getString(R.string.admob_ad_unit_id_main)); 
    newAdView.setLayoutParams(adViewParams); 
    newAdView.setId(R.id.adView); 

    adView = newAdView; 
    adViewParent.addView(adView); 

    loadAd(); 
} 

我读过其他类似的答案,像这样的android admob resize on landscape,但他们并没有为我工作,我真的不知道我在做什么错。

谢谢你的帮助。

回答

0

我希望它可以帮助你:

ViewGroup.LayoutParams adViewParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Utils.dpToPx(32)); 

而且隐藏adViewParent.setVisibility(GONE)如果广告加载失败

+0

谢谢你的评论。有了这个警告消失了,但视图仍然没有显示。此外,我宁愿不硬编码值,而是依赖WRAP_CONTENT属性 – Aurasphere