2017-09-23 3 views
0

J'essaie de recharger manuellement un AdView lorsque l'orientation change. Je suis en mesure d'émettre la demande et d'obtenir un ajout. Le problème est que lorsque je tente de supprimer l'ancienne vue et ajouter une nouvelle, je reçois cet avertissement:La hauteur du changement de l'orientation Android AdView est 0

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

Et la vue n'apparaît pas. Ceci est ma méthode 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(); 
} 

J'ai lu d'autres réponses similaires comme celui-ci android admob resize on landscape mais ils ne fonctionnait pas pour moi et je ne sais vraiment pas ce que je fais mal.

Merci pour votre aide.

Répondre

0

J'espère que cela vous aide:

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

Et cacher adViewParent.setVisibility(GONE) si le chargement d'annonce est échoué

+0

Merci pour le commentaire. Avec ceci l'avertissement est parti mais la vue n'est toujours pas montrée. De même, je préfère ne pas coder les valeurs en dur et me fier plutôt à l'attribut WRAP_CONTENT – Aurasphere