Передовой опыт: панель навигации

В руководстве по разработке для Android в шаблоне проектирования панели навигации рекомендуется способ управления различными макетами — использование фрагментов. Эти фрагменты меняются местами с помощью транзакции FragmentTransaction().replace(). На мой взгляд, фрагменты навигационного ящика обычно многократно заменяются и перезагружаются. Поэтому не будет ли более разумным использовать вызовы FragmentTransaction.show() и FragmentTransaction.hide() в этом контексте?

Какие рекомендации по использованию NavigationDrawer прямо сейчас?


person Julian Pr    schedule 25.04.2014    source источник


Ответы (2)


Да, они загружаются повторно, как и действия...

Лучшая практика — это то, что Google показывает: FragmentTransaction.replace() потому что:

  1. они знают что делают ^^
  2. он загружает только один фрагмент за раз
person shkschneider    schedule 25.04.2014

Если вас больше всего беспокоит использование фрагментов в Navigation Drawer..., вы можете использовать его.

Фрагменты просто позволяют легко заменить один макет другим без создания нового действия.

Если вы все еще хотите использовать активность для своего навигационного ящика, вы можете использовать это.

Теперь, что касается поддержания его состояния, Android actionBar сам по себе предоставляет методы, которые могут поддерживать состояние вашего приложения.

Now as per Android documentation as you are referring .. it is always good to have fragment as they a light weighted in context of to use new activity each time for your app.

Надеюсь, поможет!

person AndroidHacker    schedule 25.04.2014
comment
Я в порядке с использованием фрагментов в NavigationDrawer. Я просто не понимаю, почему по умолчанию загрузка этих фрагментов происходит через .replace() вместо .show() и .hide(). - person Julian Pr; 25.04.2014
comment
Вы должны столкнуться с проблемой перезагрузки, когда вернетесь к своей предыдущей деятельности ... и я надеюсь, что вы должны использовать ActionBar ... Это так? - person AndroidHacker; 25.04.2014
comment
У меня есть 5 фрагментов в моем навигационном ящике, и в каждом из этих фрагментов я загружаю некоторые данные json через веб-сервис. Теперь, несмотря на то, что я кэширую извлеченные данные (я использую залп Google для извлечения данных), при перезагрузке фрагмента возникает задержка в полсекунды, потому что я должен сначала воссоздать фрагмент и получить данные из кеша, что не быть проблемой при сохранении фрагмента в фоновом режиме с помощью .hide(). - person Julian Pr; 25.04.2014
comment
О, да .. Я тоже сталкиваюсь с такой же проблемой .. Интересно то же самое. Дам вам знать ... иначе, пожалуйста, укажите решение для того же, если вы получите. :) - person AndroidHacker; 25.04.2014