【Android】快速开发偷懒必备,一句话搞定所有ViewGroup的Adapter . 支持自定义ViewGroup.doc

【Android】快速开发偷懒必备,一句话搞定所有ViewGroup的Adapter . 支持自定义ViewGroup.doc

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【Android】快速开发偷懒必备,一句话搞定所有ViewGroup的Adapter . 支持自定义ViewGroup.doc

【Android】快速开发偷懒必备,一句话搞定所有ViewGroup的Adapter . 支持自定义ViewGroup 概述 开发中,经常会用到动态在ScrollView、LinearLayout里addView的事,尤其是ItemView一样时,每次都要写一大堆代码 inflater 动态addView,很烦。 还有就是在嵌套ListView、ScrollView时,想采用LinearLayout替代,但动态addView步骤神烦。 这个时候就开始期待,能不能有一种快速为任意ViewGroup添加子View的东西。但是后来发现,采用继承某个ViewGroup做这个事情不够优雅?,对代码有侵入性,如果有其他ViewGroup需要动态addView,就会写重复的代码?。 前几天有人在群里问,如何方便的给ScrollView动态添加不同种类型的childView,类似RecyclerView那样。我之前的封装由于内部有一个简单的重用机制,只支持单一ItemType,也不支持多种类型的childView。 那么需求就来了:? *?快速简单使用? * 支持任意ViewGroup? *?无耦合? *?无侵入性? * Item支持多种类型 除此之外,我还加入:? * 为ItemView设置OnItemClickListener? * 为ItemView设置OnItemLongClickListener 本文就封装了这么一个东西。 核心:? * 利用Adapter模式封装getView的操作? * 搭配一个工具类,为所有ViewGroup addView。? * 再封装出两个使用快速简单的Adapter 分别用于添加?单一Item布局、多种Item布局。 PS:所以本文也算是填了之前的一个坑,在之前文末,我就提到要写一篇为流式布局增加Adapter的文章,作为Adapter的实战演练。使用本文封装的Adapter自然可以达到这一点。 由于采用Adapter隔离ViewGroup和ItemView,在切换ViewGroup时,十分方便。? 如:在需求让你把一个HorizontalScrollView包裹的水平标签转换成流式布局时,只需要在xml替换控件即可。Adapter将自动完成适配的工作。其他代码一句不用修改。 不BB了,先看看以后如何使用吧,够不够简单粗暴。 使用预览 单一Item类型: Adapter泛型传入JavaBean,构造函数传入数据集和layout布局,一句代码搞定: //单一ItemView ViewGroupUtils.addViews(mLinearLayout, new SingleAdapterTestBean(this, mDatas, R.layout.item_test) { @Override public void onBindView(ViewGroup parent, View itemView, TestBean data, int pos) { Glide.with(LinearLayoutActivity.this) .load(data.getAvatar()) .into((ImageView) itemView.findViewById(R.id.ivAvatar)); ((TextView) itemView.findViewById(R.id.tvName)).setText(data.getName()); } }); 效果: ? 以前会用ScrollView嵌套ListView,现在只要用ScrollView套LinearLayout即可,性能更佳。 多种Item类型: 多种Item类型分两种情况: 数据结构相同: 数据结构相同依然可以给Adapter传入泛型,避免强转: //多种ItemViewType,但是数据结构相同,可以传入数据结构泛型,避免强转 ViewGroupUtils.addViews(linearLayout, new MulTypeAdapterMulTypeBean(this, initDatas()) { @Override public void onBindView(ViewGroup parent, View itemView, MulTypeBean data, int pos) {

您可能关注的文档

文档评论(0)

zhangningclb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档