2015-06-04 81 views
0

我有兩個片段[A]和[B]。把手按回頂部片段

在片段[A],我想忽略背壓所以我下面的代碼

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

    view.setOnKeyListener(new View.OnKeyListener() { 

     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 

      if (keyCode == KeyEvent.KEYCODE_BACK) { 
       return true; 
      } 

      return false; 
     } 
    }); 

這部作品片段[A]罰款。當我添加片段[B]到後臺堆棧,似乎片段[B]不能處理後退,但忽略後退的邏輯僅在片段[A]中。任何人都能解釋這種奇怪的行爲嗎

+0

發表您的兩個片段代碼 –

+0

發表您的fragement的代碼,如果你是在LOCAT ppost也得到任何錯誤。 – RajSharma

+0

似乎碎片[B]不能處理回來按...在碎片發生了什麼。 B,你說它不能處理新聞?你如何期待Frag? B表現得如何? – AADProgramming

回答

0

嘗試,這可能是它在works.Override的的onResume返回鍵...

@Override 
public void onResume() { 

    super.onResume(); 

    getView().setFocusableInTouchMode(true); 
    getView().requestFocus(); 
    getView().setOnKeyListener(new View.OnKeyListener() { 
     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 

      if (event.getAction() == KeyEvent.ACTION_UP && keyCode == KeyEvent.KEYCODE_BACK){ 

       // handle back button  
       return true; 
       } 

      return false; 
     } 
    }); 
} 
+0

我有這段代碼片段[A],它按預期工作。問題是,片段[B]似乎忽略了回按鍵,儘管上面的代碼只在片段[A]中。 – user1121332

+0

使用上面兩個apis(setFocusableInTouchMode和requestFocus)查看和比較檢查.. – Anshuman