RecyclerView点击切换布局

//在开始写上
int chenge=0;
//点击事件中写
if(chenge==0){ //添加分割线 recyclerView.addItemDecoration(new Rc_ItemDecoration(search_homeActivity.this)); //布局管理器 LinearLayoutManager llm=new LinearLayoutManager(search_homeActivity.this); recyclerView.setLayoutManager(llm); //改变
  chenge=1;}else if(chenge==1){ GridLayoutManager gridLayoutManager = new GridLayoutManager(search_homeActivity.this, 2); recyclerView.setLayoutManager(gridLayoutManager);
 //再改回去
 chenge=0;}
recyclerView.setAdapter(mda);
//在请求网络数据中写的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在RecyclerView中动态切换布局,你需要实现RecyclerView.Adapter类并重写getItemViewType方法。getItemViewType方法的返回值表示每个Item对应的布局类型。然后,在onCreateViewHolder方法中根据不同的布局类型来创建不同的ViewHolder。最后,在onBindViewHolder方法中根据不同的布局类型来绑定不同的数据。下面是一个示例代码: ```java public class MyAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private List<Item> mItems; public MyAdapter(List<Item> items) { mItems = items; } @Override public int getItemViewType(int position) { return mItems.get(position).getType(); } @Override public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { if (viewType == Item.TYPE_1) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_type_1, parent, false); return new ViewHolder1(view); } else if (viewType == Item.TYPE_2) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_type_2, parent, false); return new ViewHolder2(view); } return null; } @Override public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { Item item = mItems.get(position); if (holder instanceof ViewHolder1) { ((ViewHolder1) holder).bindData(item); } else if (holder instanceof ViewHolder2) { ((ViewHolder2) holder).bindData(item); } } @Override public int getItemCount() { return mItems.size(); } private static class ViewHolder1 extends RecyclerView.ViewHolder { private TextView mTextView; public ViewHolder1(View itemView) { super(itemView); mTextView = itemView.findViewById(R.id.text_view); } public void bindData(Item item) { mTextView.setText(item.getText()); } } private static class ViewHolder2 extends RecyclerView.ViewHolder { private ImageView mImageView; public ViewHolder2(View itemView) { super(itemView); mImageView = itemView.findViewById(R.id.image_view); } public void bindData(Item item) { mImageView.setImageResource(item.getImageResId()); } } } ``` 在上面的代码中,Item类封装了每个Item的数据和布局类型。getItemViewType方法返回Item的布局类型,onCreateViewHolder方法根据不同的布局类型来创建不同的ViewHolder,onBindViewHolder方法根据不同的布局类型来绑定不同的数据。最后,你只需要将MyAdapter设置给RecyclerView即可实现动态切换布局

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值