基于Launcher代码改进的水平视图容器(类gallery)

         Android Launcher是基于水平的视图容器(ViewGroup)。最外面的是workspace,是一个viewgroup. 每一屏幕就是一个celllayout.,也是一个ViewgroupCelllayout管理每个View,即cell.. 原生的android Launcher源代码里面对屏数有一定限制,是基于内存考虑的。

目前的我对Launcher改进,能满足对无限制数量的需求。 大概的思路如下:

启动一个后台线程,用于后台构建View. 将数据赋予View Tag里面。保持五屏的视图(即五个celllayout. 当向右或向左滑动的时候,会将向前或向后的一屏View清空,所启动的后台线程同时向后或向前生成新一屏的视图。这样就可以满足无限数量的限制。

横竖屏切换的时候,由于横竖屏的布局和每屏数目不一样,所以数据要重新构建,先构建当前屏的视图,然后再向左和向右构建视图,以保持五屏的视图Celllayout。这样就保证了横竖屏幕切换的时候不会慢。

搜索功能和横竖屏切换差不多,都是要重新构建workspace.也是构建当前屏的视图,然后再向左和向右构建视图。

 

目前基于Launcher代码改进的水平视图容器,还存在以下不足:

1. 还不是真正意义上的无限数量,数据源越大,celllayout就越大,目前只对Cell这块进行旧视图的清空和新视图的构造。因为cell是最耗内存资源。

       

     

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值