2016-08-14 1 views
3

J'ai cherché dans Stackoverflow comment intégrer un AdView dans un RecyclerView. J'ai suivi ces messages:Problèmes de chargement d'AdView dans un RecyclerView

One, two

Fondamentalement, la façon de le faire appelle loadAd à l'intérieur ou à l'intérieur onCreateViewHolder du constructeur de la ViewHolder.

De toute façon, ceci est ma mise en œuvre:

JAVA

public class AdExpressViewHolder extends RecyclerView.ViewHolder { 

    public AdExpressViewHolder(View itemView) { 
     super(itemView); 

     final AdView adView = (AdView)itemView.findViewById(R.id.adView); 
     AdRequest request = new AdRequest.Builder() 
       .build(); 
     adView.loadAd(request); 
    } 
} 

XML

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    xmlns:ads="http://schemas.android.com/apk/res-auto"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true"> 

     <com.google.android.gms.ads.AdView 
      android:id="@+id/adView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" 
      ads:adUnitId="**********************" 
      ads:adSize="BANNER"> 
     </com.google.android.gms.ads.AdView> 

    </RelativeLayout> 
</RelativeLayout> 

Le problème est: quand je défiler la RecyclerView, il semble charger sur le fil de l'interface utilisateur depuis reste coincé, seulement la première fois. Le reste du temps est correct.

Ceci est la vidéo qui le démontre:

Video

Comme vous pouvez le voir, le premier bloque l'interface utilisateur, mais pas la seconde.

Qu'est-ce que je fais mal?

Merci d'avance.


EDIT

J'ai essayé de charger un AdView classique dans une activité, fixe. Cela fonctionne et il ne semble pas être chargé dans le thread UI. Il semble que cela se passe juste dans le RecyclerView.


Après 3 semaines, je l'ai fait un profilage de la méthode, et ce que j'ai sur:

Vous pouvez réaliser les taches rouges. Ce sont 2 différents chargement AdView, tandis que le reste sont 38 vues personnalisées normales de la mienne.

Pour être plus concret, ce sont les fonctions, il est en ce qui concerne 100% du AdView:

enter image description here

+1

salut est ce bug fixe maintenant comment chargez annonces dans la vue recycleur – apk

Répondre