2017-09-23 48 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