简单描述一下要实现的:遥控器控制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);
 
}

这是主要处理的遥控器的几个方向,

此方法对该事图层有用

 

 

更多相关文章

  1. [置顶] Android事件总线还能怎么玩?
  2. Android(安卓)EventBus 封装(支持多个粘性事件消息共存)
  3. Android属性动画上手实现各种动画效果,自定义动画,抛物线等
  4. Android(安卓)主流屏幕以及适配
  5. Android工具HierarchyViewer 代码导读
  6. Android(安卓)UI系列之3D星体旋转效果
  7. Android之Intent(一)
  8. Android中捕捉menu按键点击事件的方法
  9. android 定制个性按钮 控件

随机推荐

  1. Android(安卓)studio 3.4.1NDK开发
  2. Android cts4.2 windows环境搭建说明
  3. Android(安卓)Handler(五)
  4. Android填充多边形
  5. android中,handler处理信息中弹出提示框注
  6. android Gallery控件与BaseAdapter适配器
  7. Android界面组件基本用法
  8. Android Market销售你的应用软件
  9. SearchView默认扩展
  10. [置顶] Android相关工具分类汇总