Fragment的OnkeyDown处理方法

匿名 (未验证) 提交于 2019-12-03 00:36:02

由于只有Activity中才存在onKeyDown()方法监听,Fragment并不存在,那如何在Fragment中去监听遥控器的按键事件呢?这里我列出我使用的1种方法,供大家讨论一下,欢迎指正。

  1. 首先在BaseFragment实现自己需要的抽象方法
public abstract class BaseFragment extends Fragment {      public abstract void onShow();     public abstract void requestFocus();     public abstract void clearFocus();     public  boolean isFocus(){return getView().hasFocus();};      //这里的是我们的重点     public abstract boolean onKeyDown(KeyEvent event);  }
  1. 在我们FragMent依赖的Activity中重写onKeyDown(),这里有2种方式进行控制按键,<1>:外部法先在Activity看是否要去响应该按键,再去Fragment进行判断。<2>:可以先在Framgent里面根据需要判断按键事件,再在Activity中进行判断,下面我列出第一种方式。
//环境在Activity中  @Override     public boolean onKeyDown(int keyCode, KeyEvent event) {         boolean ret = false;         ret = activityParseOnkey(keyCode);         if (!ret) {             ret = mCurFragment.onKeyDown(event);         }         return ret;     }       private boolean activityParseOnkey(int keyCode) {         boolean ret = false;         switch (keyCode) {             case KeyEvent.KEYCODE_DPAD_RIGHT:             if(需求){                 ret =true;             }                 break;             case KeyEvent.KEYCODE_DPAD_LEFT:                 break;             case KeyEvent.KEYCODE_DPAD_UP:                 break;             case KeyEvent.KEYCODE_DPAD_DOWN:                 break;             case KeyEvent.KEYCODE_BACK:                 break;         }         return ret;     }

3.最后我们在看下Fragment里面的onkeyDown()方法:

 @Override     public boolean onKeyDown(KeyEvent event) {         boolean ret = false;         switch (event.getKeyCode()) {             case KeyEvent.KEYCODE_DPAD_UP:                 break;             case KeyEvent.KEYCODE_DPAD_DOWN:                 break;             case KeyEvent.KEYCODE_DPAD_LEFT:                 break;             case KeyEvent.KEYCODE_DPAD_RIGHT:                 break;             case KeyEvent.KEYCODE_BACK:                 break;          }         return ret;     }

本人也是小白一枚,很早就想写点什么东西,可是平时做的比较太零碎了,最大的问题也是怕误导大家。可还是忍不住分享点什么,毕竟跟大家索取的太多了。

转载请标明出处:Fragment的OnkeyDown处理方法
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!