2017-09-23 10 views
0

Ich versuche, ein AdView manuell neu zu laden, wenn sich die Ausrichtung ändert. Ich bin in der Lage, die Anfrage zu stellen und eine Hinzufügung zu erhalten. Das Problem ist, dass, wenn ich versuche, die alte Ansicht zu entfernen und einen neuen hinzufügen, ich diese Warnung erhalten:Android AdView Ausrichtung Änderung Höhe ist 0

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

Und die Aussicht ist nicht gezeigt. Das ist mein onConfigurationChanged Methode:

@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(); 
} 

ich andere ähnliche Antworten wie diese android admob resize on landscape gelesen haben, aber sie haben nicht funktioniert für mich, und ich weiß wirklich nicht, was ich falsch mache.

Vielen Dank für die Hilfe.

Antwort

0

Ich hoffe, es hilft Ihnen:

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

Und verstecken adViewParent.setVisibility(GONE) wenn Laden der Anzeige nicht bestanden

+0

Sie für den Kommentar danken. Damit ist die Warnung weg aber die Ansicht wird immer noch nicht angezeigt. Außerdem würde ich lieber keine Werte fest codieren und stattdessen auf das Attribut WRAP_CONTENT zurückgreifen – Aurasphere