让GridView(ListView)记住上次的离开的位置

  • 内容
  • 评论
  • 相关

前言

在Android TV的开发中,最麻烦的就是焦点控制问题了,系统的默认行为就是寻找当前按键方向上最近的能获取焦点的控件,虽然部分控件,比如TextView、Button等可以在xml文件中使用android:nextFocusLeft(Right/Up/Down)等来控制下一个拥有焦点的View,但是对于复杂点的,比如GridView就不那么方便了,要实现的功能是当焦点从GridView上离开然后回到GridView默认选中的还是离开时拥有焦点的子View。如下图。当向上进入分类栏时,回到列表还是选中默认的那个View。

实现

实现方法很简单,就是重写GridView的onFocusChanged()方法,当GridView整体失去/获取焦点的时候会被调用。当检测到失去焦点的时候记录下当前位置,然后获取焦点以后再设置即可。

参考博客:享受技术带来的快乐

评论

0条评论

发表评论

电子邮件地址不会被公开。