代码之家  ›  专栏  ›  技术社区  ›  jojo

在一个可回收的Android中查看AdView

  •  1
  • jojo  · 技术社区  · 6 年前

    当我使用 AdView RecyclerView 列表项。广告正在显示,但出现延迟 回收服务 纸卷。

    <android.support.v7.widget.CardView
        xmlns:android="http://schemas.android.com/apk/res/android"
        style="@style/CardViewStyle"
        android:layout_marginTop="5dp"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:id="@+id/ll_main">
                <ImageView
                        android:id="@+id/imgmovie"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:adjustViewBounds="true"
                        android:scaleType="fitXY"
                        android:src="@drawable/banner" />
    
    
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:id="@+id/ll_add"
                android:padding="5dp">
    
                <com.google.android.gms.ads.AdView
                    xmlns:ads="http://schemas.android.com/apk/res-auto"
                    android:id="@+id/adView"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_alignParentBottom="true"
                    android:layout_centerHorizontal="true"
                    ads:adSize="LARGE_BANNER"
                    ads:adUnitId="ca-app-pub-29456479604197"/>
            </LinearLayout>
        </LinearLayout>
    
    </android.support.v7.widget.CardView>
    

    适配器代码

    public class MoviesListMainAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
        Context con;
        AtmHolder pvh1;
        List<MovieListData> movie_list;
    
        public MoviesListMainAdapter(boolean loadMore, List<MovieListData> movie_list, Context con) {
            this.movie_list = movie_list;
            this.con = con;
    
    
        }
    
        @Override
        public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int position) {
            RecyclerView.ViewHolder viewHolder = null;
            if (position == 0) {
                View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.movie_list_item_style, viewGroup, false);
                viewHolder = new AtmHolder(v);
            }
            return viewHolder;
        }
    
        @Override
        public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
            if (holder instanceof AtmHolder) {
                    pvh1 = (AtmHolder) holder;
                    AdRequest adRequest = new AdRequest
                            .Builder()
                            .build();
                    pvh1.adView.loadAd(adRequest);
    
                    Glide.with(con)
                            .load("Image URL")
                            .placeholder(R.drawable.banner)
                            .crossFade()
                            .diskCacheStrategy(DiskCacheStrategy.ALL)
                            .into(pvh1.imgmovie);
            }
        }
    
        public int getItemViewType(int position) {
            int a = 0;
            return a;
        }
    
        @Override
        public int getItemCount() {
            return movie_list.size();
        }
    
        public static class AtmHolder extends RecyclerView.ViewHolder {
            ImageView imgmovie;
            AdView adView;
            AtmHolder(View itemView) {
                super(itemView);  
                imgmovie = (ImageView) itemView.findViewById(R.id.imgmovie);
                this.adView=itemView.findViewById(R.id.adView);
            }
        }
    }
    
    0 回复  |  直到 6 年前