1  充值的或年纪的

或 

1

先讲例子

http://blog.csdn.net/lmj623565791/article/details/48393217; 
本文出自:【张鸿洋的博客】

一、概述

本文之前,先提一下关于上篇博文的100多万访问量请无视,博文被刷,我也很郁闷,本来想把那个文章放到草稿箱,结果放不进去,还把日期弄更新了,实属无奈。

ok,开始今天的博文,今天要说的是TagFlowLayout,说这个之前必须提一下FlowLayout,如果你不了解,可以先阅读之前的博文:Android 自定义ViewGroup 实战篇 -> 实现FlowLayout或者观看视频打造Android中的流式布局和热门标签 。

因为本身FlowLayout本身的预期是提供一种新的布局的方式,但是呢,在实际的开发中,大家更多的是使用在商品标签,搜索关键字的场景,那么就涉及到一些交互:

  • 比如用户选择了某个标签,首先你要去改变标签的样子给用户一个反馈,其次你需要记录用户的选择。
  • 那么在选择过程中还有多选的情况,比如4选2,4选3等等。
  • 还有…

类似京东的这个选择商品的图:

对于上述的情况呢,FlowLayout只能说能够实现View的显示没有问题,而对于点击某个Tag,以及修改某个Tag的样子,可能需要编写大量的代码,且设计只要稍微的改下显示的效果,估计就得加班了。

既然这么多的不方便,那么我们现在就在FlowLayout的基础上,编写TagFlowLayout去完善,目前支持:

  • 以setAdapter形式注入数据
  • 直接设置selector为background即可完成标签选则的切换,类似CheckBox
  • 支持控制选择的Tag数量,比如:单选、多选
  • 支持setOnTagClickListener,当点击某个Tag回调
  • 支持setOnSelectListener,当选择某个Tag后回调
  • 支持adapter.notifyDataChanged
  • Activity重建(或者旋转)后,选择的状态自动保存

我们的效果图:

github地址:FlowLayout

我需要思考几分钟本文的叙述方式…

ok,由于本文并非从无到有的去构造一个新的东西,所以你肯定没有办法根据我的分析,然后就能完整的写出来。这样的话,就非常建议大家下载源码,拿着源码比对着看;或者看完本文后去下载源码;或者仅仅是看看思路学学知识点(eclipse的用户,拷贝几个类不是难事,不要私聊我问我怎么整~)。


二、以setAdapter形式注入数据

首先我们完成的就是,去除大家痛苦的添加数据的方式。类似ListView,提供Adapter的方式,为我们的TagFlowLayout去添加数据,这种方式,大家用的肯定比较熟练了,而且也比较灵活。

最新文章

  1. Python-第三方库requests详解
  2. 别老嫌Mac系统难用 这些快捷键你都用过吗
  3. webform文件的上传
  4. javascript运算符——关系运算符
  5. 使用Aspose.Cell.dll导出Excel总结
  6. Objective-C( Foundation框架 一 数组(NSMutableArray))
  7. 加速传感器(CoreMotion) swift
  8. 服务端提供的JSON数据接口与用户端接收解析JSON数据
  9. JDK - Tomcat - Eclipse - JSP - Servlet 配置运行全攻略
  10. [AngularJS] Lazy Loading modules with ui-router and ocLazyLoad
  11. Android中 判断是平板还是手机
  12. asp.net服务器控件防止多次提交问题
  13. java算法之身份证号码验证
  14. 调试EF源码
  15. SQLserver2008r2安装过程
  16. Web 性能优化:21 种优化 CSS 和加快网站速度的方法
  17. hashMap,hashTable,concurrentHashMap区别
  18. winform程序生成条形码并且并且保存到本地文件中。
  19. will-change属性
  20. 雷林鹏分享:jQuery EasyUI 扩展

热门文章

  1. 跟我一起学WCF(3)——利用Web Services开发分布式应用
  2. Unity3D——相机跟随物体移动
  3. webpy使用笔记(一)
  4. [JS13] ActivetX
  5. 辐射4 中文武器命名方法, 不用winhex, 直接游戏内操作
  6. dpkg 被中断,您必须手工运行 sudo dpkg -configure -a 解决
  7. ios 项目里常用的宏
  8. JavaScript、for循环语句知识巩固,while(){}语句以及do{}while()语句以及switch()语句
  9. AngularJS 源码分析3
  10. 【UML】UML基础知识