默認情況下,當抽屜正在顯示並且您按下BackButton
時,它會自動關閉。 但我希望當它顯示和用戶點擊BackButton
,關閉應用程序。 我嘗試了這些解決方案,但沒有奏效:Android,抽屜顯示時處於onBackPressed
Navigation drawer, handling the back button to go to previous fragments
Backbutton press from android navigation drawer
默認情況下,當抽屜正在顯示並且您按下BackButton
時,它會自動關閉。 但我希望當它顯示和用戶點擊BackButton
,關閉應用程序。 我嘗試了這些解決方案,但沒有奏效:Android,抽屜顯示時處於onBackPressed
Navigation drawer, handling the back button to go to previous fragments
Backbutton press from android navigation drawer
第一個覆蓋回壓你的活動,然後可以檢查是否打開抽屜
mDrawerLayout.isDrawerOpen(GravityCompat.START);
如果這個回報真正關閉你的應用程序。
重要:檢查您的抽屜重力。
嘗試註冊你片段回壓是這樣的:
public void registerBackButton()
{
if (getView() != null)
{
getView().setFocusableInTouchMode(true);
getView().requestFocus();
final BaseFragment frag = this;
getView().setOnKeyListener(new OnKeyListener()
{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if (event.getAction() != KeyEvent.ACTION_DOWN)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
if (isVisible())
{
return frag.onFragmentBackPressed();
}
}
}
return false;
}
});
}
}
現在onFragmentBackPressed檢查,如果抽屜被打開或如上所述沒有。
當抽屜打開時,它不檢查是否有子句。 –
你的意思是說onBackPressed不叫? –
是的! 檢查自己買 –
onBackPressed
將不會在抽屜打開時被調用,或者讓您說如果您的鍵盤已打開,您的後退鍵也會變爲向下箭頭。所以當你按下這個鍵時你的鍵盤會隱藏起來,而你的onBackPressed
將不會被調用。
當您再次按下後退按鈕時,您的應用程序將會關閉。鍵盤也是如此。
因此,首先關上抽屜,然後再次按後退按鈕,然後你的應用程序將完成
有一個布爾檢查導航抽屜處於_onBackPressed(打開)_ –
我做到了,但它不檢查如果條款是抽屜打開的話。 –