2016-01-15 1 views
3

Мое приложение в основном имеет одно основное видение. В нем есть три вкладки, каждая из которых имеет фрагмент. Что-то похожее на макет whatsapp.Правильно ли использовать NavigationDrawer для открытия Activities, а не фрагментов?

Чтобы добавить больше функциональности в приложение, я увидел, что NavigationDrawer будет хорошим вариантом. Но из-за того, что мое приложение работает с основным действием с дочерними фрагментами, я задаюсь вопросом, будет ли это плохая практика загрузки, а не фрагментов, когда пользователь нажимает на любой элемент NavigationDrawer.

Или лучший meneira превратит мою MainActivity в фрагмент? Это дало бы мне большую работу ..

Я хотел бы предложения =)

ответ

3

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

Однако я бы отговорил это. Я работал с приложениями, которые смешивали Fragments и Activities для NavigationDrawer, и результат был проблематичным, особенно когда дело касалось возврата и сохранения состояния. Он действительно работал, но требовал хакфикса и некоторого нелогичного кода.

Лучшая практика для NavigationDrawer заключается в том, чтобы иметь один «контейнерный» вид деятельности, который делает немного больше, чем просто обменивает Fragments в FrameLayout, который он держит. Остальная часть логики будет в Фрагментах. Таким образом, приложение легко расширяется, а backstack обрабатывается платформой.

+0

Так что, если я решил использовать только фрагменты, в моем случае приложение в основном имеет одно основное действие, и внутри него есть три вкладки, каждая с фрагментом. Лучший способ - взять TabLayout my main_activity.xml. Создавая ViewPager main_activity.xml, помещает их в фрагмент и добавляет их (TabLayout и ViewPager) только при использовании приложения «home»? Это было бы «правильно»? – sThiago

+0

Да, вы должны поместить текущую логику Pager в другой фрагмент, несколько создав иерархию Activity => Fragment (Pager) => Fragments (content), когда выбрана опция «Главная». – Kelevandos

+0

Большое вам спасибо. Их ответы оставили вещи яснее =) Это необходимо сейчас – sThiago

0

Я предпочитаю Fragments, но нет проблем с открытием нового Activities. Instagram делает что-то подобное. У него есть вкладки (я знаю, что вы хотите использовать NavigationDrawer, но это только пример), и один на этих вкладках открывает новый Activity, а кнопка X закрывает Activity.

Instagram Основная деятельность:

enter image description here

Новая активность с кнопкой закрытия:

enter image description here

0

Series Guide Android приложение делает то же самое. Он открывает «Действия» из навигационного ящика. Такая деятельность расширяет BaseNavDrawerActivity. Анимация начала и выхода Activity - это обычай, чтобы сделать переход более гладким.

Я бы порекомендовал этот подход, так как гораздо проще управлять столами «Действия», чем «Фрагменты».

0

Продолжайте счастливо с открытием. Удостоверьтесь, что вы положили кнопку «Назад» на открытую активность, чтобы пользователь имел четкое представление о том, какой экран является основным.

Но подождите ..

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

Надеюсь, это даст вам представление о том, как Продолжайте ..

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