如何在Fragment中使用onKeyDown方法

时间:2017-06-01 19:36:21

标签: android android-fragments fragment keylistener keyevent

我有两个碎片。它们都有一些音频文件列表。当和音频播放时,会弹出一个seekBar,当媒体播放完毕后,sekkBar会向下滑动并隐藏。

如果用户想要在播放媒体时隐藏搜索栏,我已决定更好的视图,show_and_hide seekBar与两个片段中的硬件MENU_KEY分开。

我这样做但是没有用:

view = inflater.inflate(R.layout.light_fragment_main, container, false);

        view.setOnKeyListener(new View.OnKeyListener(){
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_MENU) {
                boolean check = true;

                if (mediaPlayer.isPlaying()){

                    if (check){
                        toast("slide DOWN");
                        check = false;
                      }

                else {
                        toast("slide UP");
                        check = true;
                }


            }


                return true;

            }
            return false;
        }

    });

我做错了吗?

1 个答案:

答案 0 :(得分:0)

我正在使用带有标签片段的视图寻呼机,因此我在片段的MainActivity中实现了onKeyDown方法,并从那里控制了我的seekBar的可见性。我就是这样做的:

@Override
public boolean onKeyDown(int keyCode, KeyEvent e) {
    if (keyCode == KeyEvent.KEYCODE_MENU) {

        if (ZZZLightFavorites.isPlaying) {
            ZZZLightFavorites z = (ZZZLightFavorites) ZZZLightFavorites.favFragment;
            z.getFragmentManager().findFragmentByTag(ZZZLightFavorites.ARG_ITEM_ID);
            if (z != null) {
                if (ZZZLightFavorites.seekBarVisibility) {
                    z.slideDownSeekbar();
                }else {
                    z.slideUpseekBar();
                }
            }
        }

        else if(ZZZLight.isPlaying) {
            ZZZLight z = (ZZZLight) ZZZLight.mainFragment;
            z.getFragmentManager().findFragmentByTag(ZZZLight.ARG_ITEM_ID);
            if (z != null) {
                if (ZZZLight.seekBarVisibility) {
                    z.slideDownSeekbar();
                }else {
                    z.slideUpseekBar();
                }
            }
        }

        return true;
    }
    return super.onKeyDown(keyCode, e);
}