RecyclerView && QuickAdapter

RecyclerView

添加横线

eg:DiagnosisFragment.java  

mIdentityRecyclerView.addItemDecoration(new ItemDecoration()
            .setDivider(IS_NIGHT_MODE ? new ColorDrawable(getResources().getColor(R.color.c_000000)) : new ColorDrawable(getResources().getColor(R.color.c_36425b)))
            .setDividerHeight(ScreenUtils.dpToPxInt(getActivity(), 0.5f))
            .setPadding(ScreenUtils.dpToPxInt(getActivity(), 15f)));

RecyclerView之ItemDecoration由浅入深

GridLayoutManager

RecyclerView 中setSpanSizeLookup 解释

GridLayoutManager manager = new GridLayoutManager(getActivity(), 3);
    manager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
        @Override
        public int getSpanSize(int position) {
            return mBrandAdapter.getItemViewType(position) == BaseMainItemType.ITEM_BRAND ? 1 : 3;
        }
    });

解:第一行代码设置3行,第二行代码通过设置setSpanSizeLookup覆盖了上面的设置,可以将页面动态设置一行3个一行两个,一行一个动态改变都是可以的。

QuickAdapter

总共封装以下几种适配器:

  • BaseQuickAdapter
    • (基类,也是最常用的,重点关注这个)
  • BaseNestedScrollViewQuickAdapter
    • NestedScrollView嵌套RecyclerView的时候使用BaseNestedScrollViewQuickAdapter
  • BaseNoRefreshQuickAdapter
    • SwipeRefreshLayout嵌套RecyclerView的时候,SwipeRefreshLayout的高度设为WRAP_CONTENT,会被子布局填充整个屏幕,高度不能随item自适应。
    • BaseNoRefreshQuickAdapter把SwipeRefreshLayout去掉,不嵌套RecyclerView。
    • 这个还是少用得了……
  • BaseMultiItemQuickAdapter

另外还有:

  • BaseViewHolder
    接下来看项目用到就记录一下。

BaseViewHolder

整理一下常用的暴露出来的方法:

  • 文本:
  • setText(viewId, value);
  • setTextColor()
  • 背景图片:
  • setImageResource(viewId,imageResId)
  • setBackgroundColor(viewId,color)
  • setBackgroundRes(viewId, backgroundRes)
  • setBackgroundDrawable()
  • setImageDrawable()
  • setImageBitmap()
  • setAlpha
  • 显示隐藏:
  • setGone
  • setVisible
  • 进度条/评分条(这两个不赘述)
  • 监听器
  • addOnClickListener(viewId)
  • addOnLongClickListener(viewId)
  • setOnItemLongClickListener(viewId, OnItemLongClickListener listener)
  • setOnItemSelectedClickListener(viewId, OnItemSelectedListener listener)
  • setNestView(viewId)//这个我不太懂是干嘛的

BaseQuickAdapter

整理一下常用的暴露出来的方法:

  • disableLoadMoreIfNotFullPage//如果没有布满页面便禁止上拉加载更多
  • setUpFetchEnable//设置启动获取
  • isUpFetchEnable//是否启动获取
  • setUpFetching//设置是否启动获取
  • setOnLoadDataListener//设置加载数据侦听器
  • setLoadDataCountPerRequest//设置每个请求的加载数据计数
  • setLoadMoreView//设置加载更多的页面
  • getLoadMoreViewCount//获取加载更多视图计数(返回一个或者0个)
  • getLoadMoreViewPosition//获取加载更多视图的位置
  • setEnableManualLoadMore//设置是否启用手动加载更多
  • manuallyLoadMore//手动加载更多
  • isLoading//是否在加载中
  • setEnableLoadMore//设置是否启动加载更多
  • setEnableRefresh//设置是否启动刷新
  • setDuration//设置持续时间
  • setNewData//设置新数据(并更新)
  • addData(position, data)//选择位置(可为空,默认最后面),添加数据(并更新)
  • remove(position)//删掉某一行数据(并更新)
  • setData()addData()replaceData()//其他更新数据的方法
  • clear()//清空数据(并更新)
  • getHeaderLayoutCount()//获取头部布局计数(返回一个或者0个)
  • getFooterLayoutCount()//获取尾部布局计数(返回一个或者0个)
  • getStatusViewCount()//获取状态视图计数(返回一个或者0个)
  • getItemCount()//获取子项计数(包括状态/尾部/头部视图,具体看源码吧)
  • getItemViewType(position)//获取当前位置子项的类型
  • notifyLoadMoreToLoading()//通知加载更多到加载
  • setAutoPreLoad//设置自动预加载
  • onAttachedToRecyclerView//绑定RecyclerView
  • setHeaderViewAsFlow//设置头部浮动
  • isHeaderViewAsFlow//头部是否浮动
  • setFooterViewAsFlow//设置尾部浮动
  • isFooterViewAsFlow//尾部是否浮动
  • onBindViewHolder//绑定不同类型的持有者,解决不同的绑定事件(好像用不到)
  • setOnItemClick()//设置子项点击事件
  • setOnItemLongClick//设置子项长按事件
  • getHeaderLayout//获取头部布局
  • getFooterLayout//获取尾部布局
  • addHeaderView//添加头部布局
  • setHeaderView//设置头部布局(替换某个头部布局,如果没有头部布局则直接新建一个)
  • addFooterView
  • setFooterView
  • removeHeaderView
  • removeFooterView
  • removeAllHeaderView
  • removeAllFooterView
  • setStatusView
  • showStatus
  • showLoadingAndRefreshData//显示加载并更新数据(可加参数延迟)
  • manuallyRefreshData//手动更新数据(区别上一个方法就是这个方法不显示加载效果)
  • openLoadAnimation//打开加载动画(可选择动画类型,也可自定义动画,也可以不传默认)
  • getViewByPosition//根据位置获取视图
  • expand(position,animate, shouldNotify)//展开(位置,动画,是否刷新)
  • expandAll()//展开全部
  • collapse//折叠
  • getItemPosition//子项的位置
  • hasSubItems//是否有二级子项
  • isExpandable//是否可以展开
  • getParentPosition//获取上级的位置
  • setOnItemClickListener//设置子项点击事件
  • setOnItemChildClickListener//设置子项内部控件点击事件
  • setOnItemLongClickListener
  • setOnItemChildLongClickListener
  • onCreateViewHolderByType//按类型创建视图保持架(常用)
  • 完毕!

BaseNoRefreshQuickAdapter

(字面意思就是不提供刷新)
eg:PersonIdentityAdapter.java

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值