scrollview嵌套listview 嵌套HorizontalScrollView嵌套gridview 焦点及卡顿问题

来源:互联网 发布:软件质量属性 编辑:程序博客网 时间:2024/06/08 11:23

最近项目中用到了scrollview嵌套listview 嵌套HorizontalScrollView嵌套gridview设计,废了九牛二虎之力写好之后就出现各种问题:首先是横向gridview滑动的时候不流畅,卡顿现象。其次是横向gridview滑动之后造成上下滑动异常现象。我的思路是滑动卡顿可能是由于gridview滑动是不断重建造成的,虽然有viewholder缓存在某些手机上还是有不明显的卡顿现象。第二个问题就是父布局和子布局焦点冲突造成的。

通过网上的讲解和查阅资料之后发现,其实两个问题本身就是一个原因造成的:那就是父布局和子布局焦点异常造成的。最后发现是descendantFocusability造成的。

官方文档的说明是:

android:descendantFocusability

Defines the relationship between the ViewGroup and its descendants when looking for a View to take focus.

Must be one of the following constant values.

该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。

属性的值有三种:

        beforeDescendants:viewgroup会优先其子类控件而获取到焦点

        afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

        blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

 

通常我们用到的是第三种,即在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的属性就好了,以上两个问题也就同时解决了!

PS:感谢@Mr梵谷。


阅读全文
0 0
原创粉丝点击