【android】快速开发偷懒必备,一句话搞定所有viewgroup的adapter . 支持自定义viewgroup

【android】快速开发偷懒必备,一句话搞定所有viewgroup的adapter . 支持自定义viewgroup

ID:37417086

大小:4.16 MB

页数:28页

时间:2019-05-23

【android】快速开发偷懒必备,一句话搞定所有viewgroup的adapter . 支持自定义viewgroup_第1页
【android】快速开发偷懒必备,一句话搞定所有viewgroup的adapter . 支持自定义viewgroup_第2页
【android】快速开发偷懒必备,一句话搞定所有viewgroup的adapter . 支持自定义viewgroup_第3页
【android】快速开发偷懒必备,一句话搞定所有viewgroup的adapter . 支持自定义viewgroup_第4页
【android】快速开发偷懒必备,一句话搞定所有viewgroup的adapter . 支持自定义viewgroup_第5页
资源描述:

《【android】快速开发偷懒必备,一句话搞定所有viewgroup的adapter . 支持自定义viewgroup》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、【Android】快速开发偷懒必备,一句话搞定所有ViewGroup的Adapter.支持自定义ViewGroup概述开发中,经常会用到动态在ScrollView、LinearLayout里addView的事,尤其是ItemView一样时,每次都要写一大堆代码inflater动态addView,很烦。还有就是在嵌套ListView、ScrollView时,想采用LinearLayout替代,但动态addView步骤神烦。这个时候就开始期待,能不能有一种快速为任意ViewGroup添加子View的东西。但是后来发现,采用继承某个ViewGrou

2、p做这个事情不够优雅 ,对代码有侵入性,如果有其他ViewGroup需要动态addView,就会写重复的代码 。前几天有人在群里问,如何方便的给ScrollView动态添加不同种类型的childView,类似RecyclerView那样。我之前的封装由于内部有一个简单的重用机制,只支持单一ItemType,也不支持多种类型的childView。那么需求就来了: * 快速简单使用 *支持任意ViewGroup * 无耦合 * 无侵入性 *Item支持多种类型除此之外,我还加入: *为ItemView设置OnItemClickListener *

3、为ItemView设置OnItemLongClickListener本文就封装了这么一个东西。核心: *利用Adapter模式封装getView的操作 *搭配一个工具类,为所有ViewGroupaddView。 *再封装出两个使用快速简单的Adapter分别用于添加 单一Item布局、多种Item布局。PS:所以本文也算是填了之前的一个坑,在之前文末,我就提到要写一篇为流式布局增加Adapter的文章,作为Adapter的实战演练。使用本文封装的Adapter自然可以达到这一点。由于采用Adapter隔离ViewGroup和ItemView,

4、在切换ViewGroup时,十分方便。 如:在需求让你把一个HorizontalScrollView包裹的水平标签转换成流式布局时,只需要在xml替换控件即可。Adapter将自动完成适配的工作。其他代码一句不用修改。不BB了,先看看以后如何使用吧,够不够简单粗暴。使用预览单一Item类型:Adapter泛型传入JavaBean,构造函数传入数据集和layout布局,一句代码搞定://单一ItemViewViewGroupUtils.addViews(mLinearLayout,newSingleAdapter(this,

5、mDatas,R.layout.item_test){@OverridepublicvoidonBindView(ViewGroupparent,ViewitemView,TestBeandata,intpos){Glide.with(LinearLayoutActivity.this).load(data.getAvatar()).into((ImageView)itemView.findViewById(R.id.ivAvatar));((TextView)itemView.findViewById(R.id.tvName)).setTe

6、xt(data.getName());}});效果: 以前会用ScrollView嵌套ListView,现在只要用ScrollView套LinearLayout即可,性能更佳。多种Item类型:多种Item类型分两种情况:数据结构相同:数据结构相同依然可以给Adapter传入泛型,避免强转://多种ItemViewType,但是数据结构相同,可以传入数据结构泛型,避免强转ViewGroupUtils.addViews(linearLayout,newMulTypeAdapter(this,initDatas()){@

7、OverridepublicvoidonBindView(ViewGroupparent,ViewitemView,MulTypeBeandata,intpos){((TextView)itemView.findViewById(R.id.tvWords)).setText(data.getName()+"");Glide.with(MulTypeActivity.this).load(data.getAvatar()).into((ImageView)itemView.findViewById(ivAvatar));}});效果:数据结构不

8、同:如果数据结构不同,则不用传入泛型,但是使用时需要强转://多种Item类型:数据结构不同不传泛型了使用时需要强转javaBean,判断ItemLayoutIdV

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。