我一直在寻找Stackoverflow如何在AdView
内集成RecyclerView
。我一直关注这些帖子:
基本上,这样做的方法是在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线程上,因为它卡住了,只是第一次。剩下的时间都可以。
这是演示它的视频:
如您所见,第一个是阻止UI,而不是第二个。
我做错了什么?
提前谢谢。
修改
我尝试在活动中加载传统的AdView
,已修复。它的工作原理似乎并没有在UI线程中加载。似乎它只是发生在RecyclerView
。
3周后,我已经完成了方法分析,这就是我已经解决的问题:
你可以实现红点。这是两个不同的AdView
加载,而其余的是我的38个正常自定义视图。
更具体地说,这些是功能,所以它关于100%AdView
:
答案 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