现在的位置: 首页 > 综合 > 正文

机顶盒开发 ListView嵌套GridView GridView中ChildView和Item的焦点

2018年02月17日 ⁄ 综合 ⁄ 共 570字 ⁄ 字号 评论关闭

   在ListView嵌套GridView这样的特殊场景中 已经很多人做过了 遇到的最多的问题就是滚动条的冲突 解决方式就是吧GridView彻底展开 现在要解决的是GridView中 每个item的焦点 到底被谁消费了  

在一个Activity的布局XML中一个单独的GridView  这个GridView是拿到焦点的 所以Item获取不到焦点 具体表现在遍历子节点 设置onChildFocusChangeListener 没有响应 但是在在GridView的onItemSelectedListener中却响应到了  这是因为GridView本身具有焦点 自己去控制item的事件 焦点在谁身上 谁就是控制着

而在ListView嵌套GridView 中 GridView只一个充当着一个架子的功能  本身没有焦点  说的再明白点 GridView没有起到任何作用 只是控制着每个item的摆放位置 统一 外层的ListView的每个item也就是每个·GridView 不具有焦点 那么 GridView中的item就具有了焦点 这时候去设置onChildFocusChangeListener 是可以响应到的 而GridView的onItemSelectedListener中去响应不到 这就是原因 都是焦点在作怪

总之一句话  GridView有焦点 那么Item就拿不到焦点 反之 Item就会拿到焦点

抱歉!评论已关闭.