• Fragment中的按键监听


    在Fragmentzhong中写按键监听,有两处处需要注意:
    1)是否是当前显示的fragment;、
    2)在所依托的activity中的onKeyDown方法处理监听事件;
    其他地方和普通按键监听一样;
     
    下面用我刚写的例子说明:
    我在MainActivity中加入了一个CruiseFragment;我想在CruiseFragment中监听返回键:
    为此我做了如下处理:
    1)在MainActivity中写一个获取当前fragment的方法:
        private Fragment getVisibleFragment() {
      FragmentManager fragmentManager = MainActivity.this
        .getSupportFragmentManager();
      List<Fragment> fragments = fragmentManager.getFragments();
      for (Fragment fragment : fragments) {
       if (fragment != null && fragment.isVisible())
        return fragment;
      }
      return null;
     }
     
    2)在MainActivity中重写onKeyDown方法:
       public boolean onKeyDown(int keyCode, KeyEvent event) {
      if (getVisibleFragment() != null
        && (getVisibleFragment() instanceof CruiseFragment)
        && keyCode == KeyEvent.KEYCODE_BACK) {
       if (((CruiseFragment) getVisibleFragment()).mSidebarLayout
         .getVisibility() == View.VISIBLE) {
        ((CruiseFragment) getVisibleFragment()).hideSidebar();
        return true;
       }
      }
      return super.onKeyDown(keyCode, event);
     }
     
    最后,用手机调试,达到预期目标。
  • 相关阅读:
    P2207 Photo
    P1022 计算器的改良
    P1003 铺地毯
    P3014 [USACO11FEB]牛线Cow Line && 康托展开
    P4180 【模板】严格次小生成树[BJWC2010]
    P2776 [SDOI2007]小组队列
    P2426 删数
    P1948 [USACO08JAN]电话线Telephone Lines
    P1978 集合
    P1564 膜拜
  • 原文地址:https://www.cnblogs.com/shenchanghui/p/4933041.html
Copyright © 2020-2023  润新知