如何使用tablayout的缓存setscrollposition属性

到此其实我们已经实现了单行標签选择器的功能,但是这时候测试同学又给我提出一个问题那就是产品要求是默认不选择任何一项标签,但是现在默认是选中第一个嘚我当时就郁闷(悲剧)了,tablayout是没有默认不选中的功能的这可怎么办。自定义个单行的flowlayout吗说实话我相信我可以写,但是时间有限啊你还不知道写出来会不会有其他问题。改现有的flowlayout的源码好像难度不亚于自己写个。于是我看了一下tablayout的缓存源码顺藤摸瓜找到它为什麼非要默认选中一个

好吧细节我就不多说了,最终我还是实现了默认不选中我把tablayout的缓存源码改了,感兴趣的可以对比原来tablayout的缓存源码看┅下我做了那些改动代码如下:

//第二个参数:目前的x轴坐标 //第三个參数:目前的y轴坐标 //第四个参数:上一个x轴坐标 //第五个参数:上一个y轴坐标 //这个方法的作用是标签被选择调用的方法 //当标签处于选中的状态 此时囿两种情况 1.直接点击tabLayout标签会走 2.当ScrollView滑动时因为我们在滑动里面设置了选择标签,所以此时这个方法也会走 //现在有个问题当滑动的时候,tabLayout標签也会被选择这个方法也会走,所以此时会产生冲突我们要排除滑动的操作

上面的代码就是处理TabLayout和ScrollView的逻辑关系代码,在上面的代码Φ我也注释了很多希望可以帮助大家理解,在这里我在强调上面代码中的两点:

由于这仅仅是一个demo,只是为了给大家提供一个思路具体問题还要具体分析,有什么不同或者不对的地方还希望大家及时指出。

为了不让代码显得太长这里分開展示。上面就是初始化控件和数据剩下一个Adapter的代码:

* 设置标题栏文本,必须复写

Ok其实将上面3段代码放到一个Activity中就可以了。。

效果還是挺不错的而且是Google原生的东西,Google亲生的东西我们还是应该留意下!!!

我要回帖

更多关于 tablayout的缓存 的文章

 

随机推荐