-1

嘿伙计们,我正在一个 recyclerview 中实现两张卡,还创建了两个视图持有者,但没有得到适配器的代码帮助我。

public class ViewHolder1 extends RecyclerView.ViewHolder {

    private TextView Chatin;

    public ViewHolder1(View v) {
        super(v);
        Chatin = (TextView) v.findViewById(R.id.Chatin);
    }

    public TextView getChatin() {
        return Chatin;
    }

    public void setChatin(TextView chatin) {
        this.Chatin = chatin;
    }


}

其他视图持有人与它相同。

4

2 回答 2

3

您可以在回收站视图中显示多张卡片。

1) 覆盖 getItemViewType() 方法

@Override
public int getItemViewType(int position) {

    switch (position) {
        case 0:
            return VIEW_TYPE_ONE;
        case 1:
            return VIEW_TYPE_TWO;
             .
             .
             .
        case n:
            return VIEW_TYPE_N;

        default:
            return DEFAULT_VIEW_TYPE;
    }
}

2) 在 onCreateViewHolder() 方法中检查 viewType

 @Override
 public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
   switch (viewType) {
     case  VIEW_TYPE_ONE: 
      // return card one.  
          .
          .
          .
    }
 }

3) 检查 onBindViewHolder() 中的视图类型和位置,并相应地将数据设置到您的卡中。

@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
     switch (getItemViewType(position)) {
        case VIEW_TYPE_ONE:
          ViewTypeOneViewHolder holderObj= (ViewTypeOneViewHolder) holder;
          //Your implementation for view type one.

          break;
          .
          .
          .
     }
 }
于 2016-11-18T05:38:11.783 回答
2

是的,我们可以使用多个 cardView。有关参考,请参阅下面的示例适配器链接:- https://github.com/subbuboyapati/MovieMasti/blob/master/app/src/main/java/com/subbu/moviemasti/adapter/ReviewAdapter.java

这个答案也可以帮助你。三个不同设计的 CardView 可以只使用一个 RecyclerView 吗?

看看这个教程,http://arjunu.com/2015/10/android-recyclerview-with-different-cardviews/

于 2016-11-18T05:05:13.440 回答