2017-06-01 56 views
0

我有兩個片段。他們都有一些音頻文件的列表。當音頻正在播放時,會彈出seekBar,當媒體完成時,sekkBar將滑下並隱藏。如何在片段中使用onKeyDown方法

現在我已經決定如果用戶想要在播放媒體時隱藏seekBar,請在兩個Fragments中單獨使用硬件MENU_KEY顯示和隱藏seekBar。

我做它像這樣,但它不工作:

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; 
     } 

    }); 

我是不是做錯了?

+0

的onkeydown採用的是Android過時的,我建議你使用你的片段活動onBckPressed()方法回調類。 –

回答

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); 
}