在RecyclerView

时间:2016-08-14 11:23:53

标签: android-recyclerview adview

我一直在寻找Stackoverflow如何在AdView内集成RecyclerView。我一直关注这些帖子:

Onetwo

基本上,这样做的方法是在loadAd内或onCreateViewHolder的构造函数内调用ViewHolder

无论哪种方式,这都是我的实施:

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>

问题是:当我滚动RecyclerView时,它似乎加载在UI线程上,因为它卡住了,只是第一次。剩下的时间都可以。

这是演示它的视频:

Video

如您所见,第一个是阻止UI,而不是第二个。

我做错了什么?

提前谢谢。

修改

我尝试在活动中加载传统的AdView,已修复。它的工作原理似乎并没有在UI线程中加载。似乎它只是发生在RecyclerView

3周后,我已经完成了方法分析,这就是我已经解决的问题:

你可以实现红点。这是两个不同的AdView加载,而其余的是我的38个正常自定义视图。

更具体地说,这些是功能,所以它关于100%AdView

enter image description here

1 个答案:

答案 0 :(得分:1)

这似乎是适用于Android的广告SDK的一个错误,并且至少在v9.4.0之前都没有修复。

更多信息: https://groups.google.com/forum/#!searchin/google-admob-ads-sdk/ui $ 20thread%7Csort:相关性/谷歌的AdMob的广告-SDK / k4IFZA_QGT4 / 3gMHaCPPBQAJ