社区
Android
帖子详情
如何获取recyclerView的第一个Item的视图
一个乐子人
2016-03-01 02:06:38
如何获取recyclerView的第一个Item的视图
...全文
678
1
打赏
收藏
如何获取recyclerView的第一个Item的视图
如何获取recyclerView的第一个Item的视图
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
神界码农-D-艾斯
2017-11-14
打赏
举报
回复
同问,至少输入6个字符。 同问
RecyclerView
实现回收复用学习笔记
学习启舰的自定义控件三部曲
视图
篇(七)——
RecyclerView
系列之四实现回收复用,记录一下自己的理解,方便以后复习查看。 回收复用主要有两部分:(直接copy) 第一:在onLayoutChildren初始布局时: 使用 detachAndScrapAttachedViews(recycler)将所有的可见HolderView剥离 一屏中能放几个
item
就
获取
几个HolderView,撑满初始化的一屏即可,不要多创建 第二:在scrollVerticallyBy滑动时: 先判断在滚动dy距离后,哪些holderView需要回收,如果需要回收就调用removeAndRecycleView(
android recycler多条目布局
recycler代替ScrollView,这个
RecyclerView
中有多种
item
显示出来,那么具体怎么实现呢,其实在
RecyclerView
中,我们可以重写方法get
Item
ViewType(),这个方法会传进一个参数position表示当前是第几个
Item
,然后我们可以通过position拿到当前的
Item
对象,然后判断这个
item
对象需要那种
视图
,返回一个int类型的
视图
标志,然后在onCreatViewHolder方法中给引入布局,这样就能够实现多种
item
显示了
MySQL
视图
Re: MySQL
视图
========================= # 什么是
视图
数据库中的
视图
是一个虚拟表(逻辑存在),同真实的表(物理存在)一样,
视图
包含一系列带有名称的行和列数据。行和列数据来自由定义
视图
查询所应用的表,...
CommonAdapter-通过封装BaseAdapter和
RecyclerView
.Adapter得到的通用的,简易的Adapter.zip
通过封装BaseAdapter和
RecyclerView
.Adapter得到的通用的,简易的Adapter。项目地址:https://github.com/tianzhijiexian/CommonAdapter 效果图:已解决的问题 提升
item
的独立性,完美支持
item
被多处复用
item
会根据type来做自动复用 支持多种类型的
item
一个
item
仅会调用一次setViews(),避免重复建立监听器 一个
item
仅会触发一次绑定
视图
的操作,提示效率 支持dataBinding和其他第三方注入框架 提供了getView()方法来简化findViewById 支持通过
item
的构造方法来传入Activity对象 支持通过
item
的构造方法来传入
item
中事件的回调 提供了getConvertedData(data, type)方法来对
item
传入的数据做转换,方便拆包和提升
item
的复用性 支持viewpager的正常加载模式和懒加载 支持快速将listview的适配器切换为
recyclerView
的适配器 viewpager的notifyDataSetChanged可以正常更新界面 支持
recyclerView
的添加头部和底部 支持适配器的数据自动绑定,只用操作数据便可,adapter会自动notify界面零、重要接口adapter的
item
必须实现此接口,接口源码如下:public interface Adapter
Item
{ /** * @return
item
布局文件的layoutId */ @LayoutRes int getLayoutResId(); /** * 初始化views */ void bindViews(final View root); /** * 设置view的参数 */ void setViews(); /** * 根据数据来设置
item
的内部views * * @param model 数据list内部的model * @param position 当前adapter调用
item
的位置 */ void handleData(T model, int position); }例子:public class Text
Item
implements Adapter
Item
{ @Override public int getLayoutResId() { return R.layout.demo_
item
_text; } TextView textView; @Override public void bindViews(View root) { textView = (TextView) root.findViewById(R.id.textView); } @Override public void setViews() { } @Override public void handleData(DemoModel model, int position) { textView.setText(model.content); } }一、ListView GridView的通用适配器——CommonAdapter只需继承CommonAdapter便可实现适配器:listView.setAdapter(new CommonAdapter
(data, 1) { public Adapter
Item
create
Item
(Object type) { return new Text
Item
(); } });二、
RecyclerView
的通用适配器——CommonRcvAdapter通过继承CommonRcvAdapter来实现适配器:mAdapter = new CommonRcvAdapter
(data) { public Adapter
Item
create
Item
(Object type) { return new Text
Item
(); } };三、ViewPager的通用适配器——CommonPagerAdapter通过继承CommonPagerAdapter来实现适配器:viewPager.setAdapter(new CommonPagerAdapter
() { public Adapter
Item
create
Item
(Object type) { return new Text
Item
(); } });设计思路1. Adapter如果用adapter常规写法,你会发现代码量很大,可读性低。如果adapter中有多个类型的
Item
,我们还得在getView()中写很多if-else语句,很乱。 而现在我让adapter的代码量减少到一个8行的内部类,如果你需要更换
item
只需要动一行代码,真正实现了可插拔化。最关键的是
item
现在作为了一个独立的对象,可以方便的进行复用。2. Adapter
Item
和原来方式最为不同的一点就是我把adapter的
item
作为了一个实体,这种方式借鉴了
RecyclerView
中ViewHolder的设计。把
item
作为实体的好处有很多,比如复用啊,封装啊,其余的就不细说了。3. 分层在使用过程中,我发现如果adapter放在view层,那就会影响到view层的独立性。此外adapter中经常有很多数据处理的操作,比如通过type选择
item
,数据的拆包、转换等操作。于是我还是推荐把adapter放在mvp的p层,或者是mvvm的m层。通过在实际的项目中使用来看,放在m或p层的效果较好,view的复用也比较好做。
Android下拉刷新、上拉加载库BGARefreshLayout.zip
BGARefreshLayout包含多种下拉刷新效果、上拉加载更多、可配置自定义头部广告位 。效果图: 目前已经实现了四种下拉刷新效果:新浪微博下拉刷新风格(可设置各种状态是的文本,可设置整个刷新头部的背景)慕课网下拉刷新风格(可设置其中的logo和颜色成自己公司的风格,可设置整个刷新头部的背景)美团下拉刷新风格(可设置其中的图片和动画成自己公司的风格,可设置整个刷新头部的背景)类似qq好友列表黏性下拉刷新风格(三阶贝塞尔曲线没怎么调好,刚开始下拉时效果不太好,可设置整个刷新头部的背景)一种上拉加载更多效果新浪微博上拉加载更多(可设置背景、状态文本)开发者也可以继承BGARefreshViewHolder这个抽象类,实现相应地抽象方法做出格式各样的下拉刷新效果 【例如实现handleScale(float scale, int moveYDistance)方法,根据scale实现各种下拉刷新动画】和上拉加载更多特效,可参考 BGAMoocStyleRefreshViewHolder、BGANormalRefreshViewHolder、 BGAStickinessRefreshViewHolder、BGAMeiTuanRefreshViewHolder的实现方式。目前存在的问题当配置自定义头部广告位可滚动时,内容区域和广告位还不能平滑过度。当BGAStickyNavLayout中嵌套
RecyclerView
或AbsListView,并且第一页的最后一个
item
刚好在最底部时,加载更多
视图
会悬浮在最后一个
item
上面正在刷新或加载更多时,用户上下滑动不会让下拉刷新
视图
和加载更多
视图
跟着滑动
Android
80,351
社区成员
91,288
社区内容
发帖
与我相关
我的任务
Android
移动平台 Android
复制链接
扫一扫
分享
社区描述
移动平台 Android
android
android-studio
androidx
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章