这是我的RecyclerView代码:

public RecyclerGameAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = null;
if (viewType == AD_VIEW_TYPE) {}
else{
    v = LayoutInflater.from(parent.getContext()).inflate(
                            R.layout.recyclerview_games, parent, false);
    ViewHolder viewHolder = new ViewHolder(v);
    return viewHolder;
}


我不知道如何声明要在RecyclerAdapter中显示AdView的部分。

你能帮助我吗?

最佳答案

您想检查RecyclerView的项目类型,然后采取相应措施。使用@Override方法,

@Override
public int getItemViewType(int position)
{
    if (position % 5 == 0){
        return AD_TYPE;
    }else{
        return CONTENT_TYPE;
    }
}


然后,您可以将内容或广告绑定到onCreateViewHolder中的项目。

View view = null;

if (viewType == AD_TYPE)
{
    view = new AdView(activity, AdSize.BANNER, ADMOB_ID);
    float density = activity.getResources().getDisplayMetrics().density;
    int height = Math.round(AdSize.BANNER.getHeight() * density);
    AbsListView.LayoutParams params = new AbsListView.LayoutParams(AbsListView.LayoutParams.FILL_PARENT,height);
    view.setLayoutParams(params);
    view.loadAd(new AdRequest());
}
else{
    view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_item_layout, viewGroup, false);
}

RecyclerView.ViewHolder viewHolder = new RecyclerView.ViewHolder(view);
return viewHolder;


这应该做的工作。

还要签出this threadthis thread以获得更多输入。与您类似的问题。第二个正是您的副本。在回答您的问题后找到了它。

10-08 06:19
查看更多