最近在做一个项目时,用到类似launcher的效果,遇到了这位朋友的问题,照他说的解决了,特转一下:
转自:http://blog.csdn.net/wukunting/article/details/6567230
最近在用Viewgroup, 碰到这样的问题:按手机键盘的方向键无法让其子View获得焦点。Viewgroup中的子View是通过inflate动态添加,并且Viewgroup是多屏,类似桌面程序.后来参考了Launcher的代码, 查了Viewgroup重写这么几个函数就可以达到让其子View获得焦点.
1. addFocusables(ArrayList<View>views, int direction, int focusableMode)
将需要获得焦点的View添加到获得焦点视图的列表中。
2. dispatchUnhandledMove 处理方向键在没有任何View可以获得焦点情况。
3. onRequestFocusInDescendants 传递给子View应获得焦点