私はAdView
をRecyclerView
の内部に統合する方法をStackoverflowで見てきました。私はこれらの記事を追ってきた:RecyclerView内のAdViewの読み込み中の問題
は、基本的にそれを行う方法がonCreateViewHolder
内部またはViewHolder
のコンストラクタ内loadAd
を呼んでいます。
いずれかの方法、これが私の実装です:
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スレッドを読み込む初めて詰まった残りの時間は大丈夫です。
これは、それを証明するビデオです:あなたが見ることができるように
、最初のものは、第1のUIをブロックしますが、されていません。
私は間違っていますか?
ありがとうございます。
EDIT
私は、活動に従来AdView
をロードしようとした修正しました。それは動作し、それはUIスレッドではロードされていないようです。 RecyclerView
で起きているようです。 3週間後
、私は、メソッドのプロファイリングを行ってきたが、これは私が持っているものです:あなたは赤い斑点を実現することができます
を。それらは2つの異なるAdView
ローディングですが、残りは38の通常のカスタムビューです。より具体的には
それは100%AdView
についてですので、これらは、機能している:
ハイテクは、このバグはリサイクルビューで広告をロードする方法を修正されました – apk