当前位置: 代码迷 >> Android >> Android-自定义多TAB悬浮控件实现蘑菇街主页效果
  详细解决方案

Android-自定义多TAB悬浮控件实现蘑菇街主页效果

热度:85   发布时间:2016-04-27 22:05:41.0
Android-自定义多TAB悬浮控件实现蘑菇街首页效果


 

因为项目的一些需求需要用到此种展现方式.  找了市面上大部分有类似功能的应用.  基本思路嵌套ScrollView 转换事件分发给listview 实现. 但是此种方案有个缺点.

在ScrollView切换给Listview 事件的时候. 会卡顿.   体验效果并不好.    应用此方案的应用: 蘑菇街.   口袋夺宝 .    蘑菇街在快速滑动时才会卡顿.  优化处理过.


 

在找DEMO过程中. 发现此控件的方案更少. 仅有的几个问题颇多. 例如listview 长度不一时,切换VIewpager会造成大片空白. 需要重绘viewpager界面,

但是即使重绘了. 在Viewpager左右滑切换过程中. 会造成闪屏现象.    于是只能自己重写开始.

 

---------------------------下班时间到--------------回家再更新.


 

 

于是想了2种方案.

方案一: listview实现,

此方案实现相比之下较简单,不需要处理太多繁杂的地方. 但是有个致命缺点.  由于listview无法直接获取到滑动距离. 只能通过计算item高度来间接获取.  而当手势快速滑动时, 会产生惯性滑动,而惯性滑动是无法正确的

获取到滑动的高度的, 且滑动效果并不流畅. 于是此方案放弃.

方案二: scrollview 嵌套listview实现.

此Demo就采用了这种写法.  至于为什么要用Scrollview嵌套?  因为Scrollview 能准确的获得滑动的高度. 实现滑动切换非常流畅. 并且不需要重写事件分发.

就不会有了卡顿现象;

此方案并非是在整体界面中用Scrollview 嵌套所有布局.  而是在Viewpager的item里面   ScrollView嵌套listview;

 

难点:     整个控件的难点就在于 公共区域头部的处理.   悬浮窗反而是最简单的. (题外话: 主要目的就是为了写悬浮窗效果, 结果反而最简单. 蛋疼有木有!!!(╮(╯▽╰)╭ )

另外一个难点就在于Viewpager切换时的状态保存了.  此段比较绕.  我也是绕了好久才绕明白了.


 

最后:      由于是测试Demo 代码杂乱. 勿怪.  这几天将会抽取成库, 另外加上下拉刷新及加载更多功能. 希望能帮到有用的同学们把.

Demo周一附上(忘记上传网盘了.在公司电脑(。_°☆ ╲(-  –)


 

 

注: 转载注明出处. 谢谢各位!


 

 

1楼泰杰蓝
大神 能不能发一份包含下拉刷新及加载更多功能的demo 到我邮箱啊 [email protected] 谢了
  相关解决方案