我正在使用導航抽屜並遇到小問題。發生問題當我在我的活動中時,通過導航抽屜導航到同一活動。活動啓動新的(彈出屏幕)。導航到當前活動時關閉抽屜
我希望抽屜在用戶試圖導航到他們當前所在的活動時關閉。
感謝您的幫助!
我正在使用導航抽屜並遇到小問題。發生問題當我在我的活動中時,通過導航抽屜導航到同一活動。活動啓動新的(彈出屏幕)。導航到當前活動時關閉抽屜
我希望抽屜在用戶試圖導航到他們當前所在的活動時關閉。
感謝您的幫助!
爲什麼不檢查當前活動,僞代碼:
if (this instanceof SomeActivity){
closedrawer();
}else{
navigate to SomeActivity
}
//global reference
private DrawerLayout mDrawerLayout;
//instantiate onCreate()
mDrawerLayout= (DrawerLayout) findViewById(R.id.drawer_layout);
//close it some where, on button click...
if (mDrawerLayout.isDrawerOpen(Gravity.LEFT)) {
mDrawerLayout.closeDrawer(Gravity.LEFT);
}
在你處理從抽屜式導航欄中點擊的方法:
// This is for the case where the user is trying to open a fragment called `NewFragment`
Fragment currentFragment = getSupportFragmentManager().findFragmentByTag(NewFragment.TAG);
if (currentFragment == null) {
NewFragment newFragment = new NewFragment()
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, newFragment, NewFragment.TAG);
transaction.commit();
}
mDrawerLayout.closeDrawer(mDrawerList);
這工作如果您已將片段到帶有標籤的分段容器。我通常保留這個作爲public static final String
在各自的片段。例如,NewFragment
具有一個靜態String
,稱爲TAG,稍後可以使用片段管理器來查找它。
如果currentFragment
爲空,則表示當前未添加到經理的活動中,也不在回退堆棧中。在這種情況下,將新的片段添加到片段容器中。如果沒有,只需關閉導航抽屜。
工作,謝謝! – user139934