Панель инструментов setNavigationOnClickListener нарушает функциональность ActionbarDrawerToggle
Я заменяю панель действий для панели инструментов, и у меня почти все кусочки головоломки на месте. Моя проблема, в частности, если я перемещаюсь вверх и восстанавливаю навигационную панель, кнопка переключения больше не работает. Я понял, что если установить режим ящика разблокированным, у меня есть возможность провести пальцем, чтобы открыть ящик, но я не могу щелкнуть, чтобы открыть ящик.
Итак, я загружаю фрагмент A, поведение ящика в порядке, спускаюсь к фрагменту B и применяю значок вверх, нажимаю вверх, чтобы вернуться к A, и ящик больше не открывается щелчком.
Ввод фрагмента Б:
Toolbar t = mHostingActivity.getToolbar();
mHostingActivity.getDrawerToggle().setDrawerIndicatorEnabled(false);
mHostingActivity.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
t.setNavigationIcon(mHostingActivity.getV7DrawerToggleDelegate().getThemeUpIndicator());
t.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v,) {
popBackStackToTop(mHostingActivity);
}
});
/**
* Pop the back stack and hide the Up caret all the way to the top level of the {@link com.loylap.activities.MainActivity}
*
* @param activity our hosting activity
*/
public static void popBackStackToTop(MainActivity activity) {
if (activity != null) {
FragmentManager fm = activity.getSupportFragmentManager();
fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
activity.getDrawerLayout().setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
activity.getDrawerToggle().setDrawerIndicatorEnabled(true);
}
}
Панель навигации настроена так же, как образец, может быть, проблема заключается в старом способе настройки параметров? Например, у меня все еще есть это в моей деятельности:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
return super.onOptionsItemSelected(item);
}
РЕДАКТИРОВАТЬ:
Итак, я сузил проблему до setNavigationOnClickListener (). Если я не установлю это (и поднимаюсь через кнопку возврата) - ящик ведет себя правильно. Итак, теперь вопрос заключается в том, как правильно разрешить пользователю перейти «вверх» и восстановить прослушиватель щелчков после того, как мы поднимемся?