android 机顶盒开发-----GridView
简单描述一下要实现的:遥控器控制GridView右键到第一横最后一个item再次右键跳转到第二横的问题
正常情况下,机顶盒GridView中的Item中的控件获取不到焦点,焦点都是在Item上
当GridView中的子Item里面的控件需要获取焦点时,设置GridView的属性android:descendantFocusability="afterDescendants"
这样GridVIew中的子Item中的控件就能获取到焦点了
一个按键有两个触发点,一是up,一是down,如果需要指定焦点,使用view.requestFocus(),而且需要在down上执行,因为up时,系统已经定位新的焦点了.再执行就未必是想要的结果.
重写系统的的方法:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
int keyCode=event.getKeyCode();
if (event.getAction()==KeyEvent.ACTION_UP) {
up事件,这里多数情况不需要处理.
} else {down事件
或许可以直接覆盖onKeyDown方法,而不是这个.
if(keyCode==KeyEvent.KEYCODE_DPAD_UP){
} else if (keyCode==KeyEvent.KEYCODE_DPAD_LEFT) {
//处理事件
return true;//该事件已被处理,flase调用系统方法
} else if (keyCode==KeyEvent.KEYCODE_DPAD_RIGHT) {
//处理事件
return true;
} else if (keyCode==KeyEvent.KEYCODE_DPAD_DOWN) {
} else if (keyCode==KeyEvent.KEYCODE_DPAD_CENTER||keyCode==KeyEvent.KEYCODE_ENTER) {
}
return super.dispatchKeyEvent(event);
}
这是主要处理的遥控器的几个方向,
此方法对该事图层有用
更多相关文章
- [置顶] Android事件总线还能怎么玩?
- Android(安卓)EventBus 封装(支持多个粘性事件消息共存)
- Android属性动画上手实现各种动画效果,自定义动画,抛物线等
- Android(安卓)主流屏幕以及适配
- Android工具HierarchyViewer 代码导读
- Android(安卓)UI系列之3D星体旋转效果
- Android之Intent(一)
- Android中捕捉menu按键点击事件的方法
- android 定制个性按钮 控件