ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

RecyclerView && QuickAdapter

2020-12-11 21:30:59  阅读:264  来源: 互联网

标签:&& QuickAdapter viewId 子项 获取 设置 RecyclerView 加载


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

标签:&&,QuickAdapter,viewId,子项,获取,设置,RecyclerView,加载
来源: https://blog.csdn.net/wzj_what_why_how/article/details/111053641

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有