Отключение навигационного ящика, переключение домашней кнопки / индикатора вверх по фрагментам

Настройка

У меня есть активность, содержимое которой является экземпляромDrawerLayout, который имеет навигационный ящик с индикатором ящика, отображаемым на панели действий. Деятельность содержитFragmentдавайте назовем этоListFragment, который содержит список опций. Когда опция нажата, я заменяюListFragment сDetailFragment.

На этом этапе я бы хотел отобразить опцию навигации «вверх» вместо индикатора навигационной панели. Я могу отобразить значок «вверх», если отключить индикатор ящика, позвонивmDrawerToggle.setDrawerIndicatorEnabled(false), но это только удаляет значок ящика - он не удаляет функциональность - то есть, когда я щелкаю каретку, ящик навигации все еще открыт.

Кроме того, в этих подпредставлениях я хотел бы отключить открытие ящика, перетаскивая его с края экрана. Я пытался сделать это, позвонивsetDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED) но, похоже, эта функция не отключена.

Я пытался расширитьActionBarDrawerToggle класс для предотвращения открытия ящика при нажатии на индикатор - однако, все, что происходит, это то, что выполняется действие переопределения (навигация «вверх»), но ящиквсе еще открывается.

Я также реализовал шаги вПереключение между изображением Android Navigation Drawer и кареткой Up при использовании фрагментов , Он работает до тех пор, пока идет отображение каретки, но, несмотря на переопределение функциональности кнопки «вверх», меню все равно открывается (приложение перемещается назад - оно просто также открывает ящик).

Вопрос

Итак, короткая история: есть ли какой-нибудь (желательно чистый и элегантный, но на этом этапе я пойду с хакером) способ достичь этих целей, когда мой корень макета являетсяDrawerLayout:

Замените индикатор выдвижного ящика "вверх" кареткой (предварительно выполнимо черезmDrawerToggle.setDrawerIndicatorEnabled(false))Предотвратить открытие ящика при нажатии на каретку, и вместо этого переопределить с моей собственной функцией "вверх"Не открывайте ящик, когда я перетаскиваю его за край экрана.редактировать

Хорошо, похоже, если я оба переопределитьActionBarDrawerToggle А ТАКЖЕonOptionsItemSelected, меню не открывается, когда я нажимаю на каретку. Но он все равно открывается, если я тяну с края Помогите!

Ответы на вопрос(5)

Ваш ответ на вопрос