Дизайн ящика навигации Android

У меня есть существующее приложение, в котором есть около 25 действий, к которым можно перейти с «приборной панели». Я хотел бы переключиться и начать использовать ящик навигации и фрагменты. Я просмотрел страницы дизайна Nav Drawer в Интернете и пример приложения. Мой вопрос заключается в том, как лучше всего преобразовать (структурировать) мое приложение в соответствии с шаблоном Nav Drawer. Если я переключаю свои действия на фрагменты и использую основное действие для замены каждого фрагмента по мере того, как происходит навигация, но не уверен, что это хорошо b/c для макета планшета, мне может понадобиться несколько фрагментов в моем представлении, и я не уверен, что это будет ограничивай меня. Если я пойду в другом направлении, о котором я думал, сохраните все свои действия и просто переключите необходимые на фрагменты для планшетов, но мне понадобится каждое действие для создания навигационного ящика (я думаю?), Который в моем случае ящик динамический. на данных сервера. Любые предложения были бы замечательными.

Спасибо, Брэндон.


person Brandon    schedule 23.05.2013    source источник


Ответы (1)


Ящик навигации должен быть создан для каждого действия, хотя вы можете наследовать действие и создать родительский класс, который обрабатывает код, специфичный для ящика навигации, если дублирование кода вызывает беспокойство.

Использование ящика не ограничивает вас использованием одного фрагмента на экране, просто слушайте onClick в ящике и инициируйте столько транзакций фрагментов, сколько вам нужно.

Когда дело доходит до структурирования вашего приложения, универсального совета не существует, я бы порекомендовал вам посмотреть Доклад Google I/O 2013 — Структура в дизайне приложений для Android. Navigation Drawer — это своего рода главная тема разговора.

person Martin    schedule 25.05.2013
comment
Как вы добавляете макет ящика, добавляя при этом макет действий? - person Maxrunner; 22.07.2013
comment
По сути, у вас есть «android.support.v4.widget.DrawerLayout» в качестве корневого элемента с двумя дочерними элементами, первый из которых должен быть контейнером вашего основного контента, а второй — контейнером для вашего навигационного ящика. Убедитесь, что вы установили соответствующие идентификаторы для этих контейнеров и правильно ссылаетесь на них в своей деятельности. Я предлагаю прочитать официальную документацию здесь: Создание панели навигации - person Martin; 09.08.2013
comment
@malymato это не решает проблему @Maxrunner. В супер DrawerActivity вам все равно придется раздувать макет, содержащий ящик, но вы еще не знаете макет вспомогательных действий. - person Michael; 09.09.2013
comment
Да, как нам добавить макет вспомогательных действий и раздуть ящик? - person Maxrunner; 10.09.2013
comment
Будет ли это правильным способом сделать это? stackoverflow.com/a/4922740/382115 - person Maxrunner; 19.10.2013