美文网首页
项目中内层列表的快速赋值

项目中内层列表的快速赋值

作者: 朱_c713 | 来源:发表于2020-08-12 08:53 被阅读0次
  private void initRoomConfigRecyclerView() {
        binding.rvRoomConditionList.setLayoutManager(new DisableScrollGridLayoutManager(this, 5));
        binding.rvRoomConditionList.addItemDecoration(new DividerGridItemDecoration(this, 10));
        binding.rvRoomConditionList.setAdapter(new CommomRvAdapter<RoomConfigurationObj>(mViewModel.roomConditionList, R.layout.room_condition_list_item) {
            @Override
            public void onBind(CommomViewHolder holder, RoomConfigurationObj item, int position) {
                RoomConditionListItemBinding itemBinding = (RoomConditionListItemBinding) holder.getItemBinding();
                itemBinding.setItem(item);
                itemBinding.cbSelect.setVisibility(View.GONE);
            }
        });
    }

想想还是分装的很好的,不需要分页的列表,我们的这个框架还是能快速适应的。
基类的adapter

 
public abstract class CommomRvAdapter<T> extends RecyclerView.Adapter<CommomViewHolder> {

    protected  List<T> mData ;
    protected int mLayoutId;

    protected CommomRvAdapter (List list,int layoutId){
        mLayoutId = layoutId;
        replaceData(list);
    }

    @Override
    public CommomViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        CommomViewHolder viewHolder = CommomViewHolder.get(parent,mLayoutId);
        return viewHolder;
    }

    @Override
    public void onBindViewHolder(CommomViewHolder holder, int position) {
        onBind(holder,mData.get(position),position);
    }

    public abstract void onBind(CommomViewHolder holder,T item,int position);

    public void replaceData(List<T> list){
        if(list == null){
            list = new ArrayList<>();
        }
        mData = list;
        notifyDataSetChanged();
    }


    @Override
    public int getItemCount() {
        return mData == null ? 0 : mData.size();
    }
}

内部的话,只需要为recyclerview 赋值就可以了。:

      <androidx.recyclerview.widget.RecyclerView
                    android:id="@+id/rv_room_condition_list"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp"
                    android:paddingBottom="@dimen/activity_horizontal_margin"
                    android:visibility="@{viewModel.roomConditionList.isEmpty ? View.GONE : View.VISIBLE}"
                    app:items="@{roomInfo.chamberConfiguration}"
                    app:layout_constraintTop_toBottomOf="@id/tv_room_condition_title"/>

相关文章

  • 项目中内层列表的快速赋值

    想想还是分装的很好的,不需要分页的列表,我们的这个框架还是能快速适应的。基类的adapter 内部的话,只需要为r...

  • flutter ExpandContentWidget展开列表

    外层列表 内层列表

  • QBListViewController

    公开自己项目中快速生成UI列表的基类,通过继承此类,可以快速简单的生成列表UI 例如: - (instancety...

  • 模型嵌套json解析遇到的问题

    模型嵌套,json解析遇到内层模型无法赋值成功 解决方法: 检查外层模型对内层模型的引用属性,正确应该使用strong

  • 1.10赋值语句

    一、赋值语句 赋值语句形式 二、赋值的几种形式 元组及列表解包赋值(序列赋值)当你在“=”左侧编写元组和列表时,p...

  • day7-列表元组字典集合

    02-列表相关方法 1.- 列表赋值 a.直接使用一个列表变量给另一个列表赋值,赋的是地址。赋值完之后,对其中一个...

  • 关于百度app访问H5页面出现的BUG

    记录:app版本12.13.2.10项目中某些手机的百度app访问H5vue+vue-cli 列表渲染的时候,列表...

  • Android复杂列表的实现

    RecyclerView控件从2014发布以来,目前已经普遍用于项目中,来承载各种列表内容。同时,列表样式也随着项...

  • 优雅写法-不断更新

    交换赋值 逐项列表赋值 in 字符串操作 字典键值列表 字典键值判断不推荐 has_key 获取字典的键 遍历列表...

  • day7-容器类型

    7.1 列表相关方法 7.1.1 列表赋值 a.直接使用一个列表变量给另一个列表变量赋值,赋的是地址。赋完值之后,...

网友评论

      本文标题:项目中内层列表的快速赋值

      本文链接:https://www.haomeiwen.com/subject/whhydktx.html