Настройка
У меня есть действие, contentView которого является экземпляром DrawerLayout
, в котором есть ящик навигации с индикатором ящика, отображаемым на панели действий. Действие содержит Fragment
, назовите его ListFragment
, который содержит список опций. Когда нажимается эта опция, я заменяю ListFragment
на DetailFragment
.
В этот момент я бы хотел отобразить "вверх" навигационную опцию вместо индикатора навигационного ящика. Я могу отобразить значок "вверх" , если я отключу индикатор ящика, вызвав mDrawerToggle.setDrawerIndicatorEnabled(false)
, но это только удаляет значок ящика - он не удаляет функциональность, то есть когда я нажимаю на каретку, навигационный ящик все еще открыт.
Кроме того, в этих subviews я хотел бы отключить открытие ящика, перетащив его с края экрана. Я попытался сделать это, вызвав setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED)
, но он, похоже, не отключил эту функцию.
Я попытался расширить класс ActionBarDrawerToggle
, чтобы предотвратить открытие ящика при щелчке индикатора - однако все, что происходит, это то, что выполняется переопределение ( "вверх" ), но ящик все еще открывается.
Я также выполнил шаги в Переключение между изображениями Android Navigation Drawer и Up caret при использовании фрагментов. Он работает, поскольку отображение каретки идет, но, несмотря на отмену функциональности кнопки вверх, меню по-прежнему открывается (приложение перемещается назад - оно просто также открывает ящик).
Вопрос
Итак, длинный рассказ: есть ли (желательно чистый и элегантный, но на данный момент я пойду с хакерским) способом достижения этих вещей, когда мой корень макета DrawerLayout
:
- Замените индикатор выдвижного ящика каретой "вверх" (предварительно выполнив
mDrawerToggle.setDrawerIndicatorEnabled(false))
- Предотвратить открытие ящика при нажатии на каретку и вместо этого переопределить мою собственную функциональность "вверх"
- Предотвратите открытие ящика при перетаскивании с края экрана.
Изменить
Все в порядке, похоже, если я переопределяю ActionBarDrawerToggle
AND onOptionsItemSelected
, меню не открывается, когда я нажимаю на каретку. Но он все равно открывается, если я перетаскиваю его с края. Помогите!