2017-01-15 1 views
0

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

Есть ли какие-либо реальные преимущества или недостатки между ними или это просто вопрос предпочтения?

Edit:

Просто чтобы прояснить мой вопрос:

  1. В случае использования деятельности вместо фрагментов;

Когда я выбираю «Импорт», который откроет «Деятельность», а не «Фрагмент», и если я выберу «Галерея», он откроет «Активность» с содержимым для элемента галереи и т. Д. И т. Д. Для других элементов в ящике окно.

  1. В случае использования фрагментов вместо видов деятельности;

Если я выберу из любого из элементов в окне ящика, он откроет их содержимое во Фрагментах для каждого выбранного элемента вместо запуска новых действий для каждого всплытия.

enter image description here

+1

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

+0

@ cricket_007 Итак, в основном, если бы я использовал ящик с упражнениями, мне пришлось бы создать его новый экземпляр на каждой странице активности элемента NavigationDrawer? – Equivocal

+1

Я так думаю. Вам нужно будет вызвать 'setContentView', и вы потеряете ссылку на другой ящик. –

ответ

1

Запомнить Обломки нужна активность. У вас всегда есть один минимум при использовании фрагментов.

Если вы говорите о том, чтобы использовать как основной элемент в большинстве случаев, лучше всего использовать фрагменты, потому что у вас более гибкий пользовательский интерфейс.

Производительность будет лучше, если у вас есть 3 мероприятия и 10 фрагментов или есть 13 видов деятельности? Подумайте об этом, навигация в приложении будет большой проблемой, но это просто использование правильного потока в вашем приложении.

Edit:

Например:

Ящика с деятельностью вместо фрагментов

Если вы должны были использовать NavigationDrawer без фрагментов, то это было бы лучше, чтобы сохранить экземпляр NavigationDrawer в одном Деятельность и при навигации по приложению, выбрав из элементов в NavigationDrawer, то каждый из этих запущенных действий не должен реализовывать NavigationDrawer, а вместо этого должен реализовать кнопку «Назад», чтобы вернуться к «Главному»/синглу Действия, которые был реализован в NavigationDrawer.

Примечание. Если вы хотите реализовать NavigationDrawer в нескольких действиях, вам нужно будет воссоздать новый экземпляр NavigationDrawer во всех действиях, которые вы хотите отобразить.

Я полагаю, что это было бы недостатком против использования фрагментов, тогда как если бы вы использовали фрагмент, вам не понадобилось бы много экземпляров ящика, вам понадобится только один.

Ящика с фрагментами вместо деятельности

Если вы используете NavigationDrawer с фрагментами, то векселедатель должен быть реализован в одной деятельности и при выборе каждого элемента ящика, их содержимое отображается в каждом из их собственных фрагментов (который вызывается внутри центральной операции, которая управляет всеми экземплярами фрагмента)

Смежные вопросы