Я прочитал документацию и некоторые другие вопросы по этой теме, и я не чувствую себя убежденным; Я не вижу четких границ использования этой техники.
Фрагменты теперь рассматриваются как лучшая практика ; каждое действие должно быть в основном поддержкой одного или нескольких фрагментов, а не вызывать макет напрямую.
Фрагменты создаются для того, чтобы:
разрешить
Activity
использовать много фрагментов, переключаться между ними, повторно использовать эти блоки ... ==>Fragment
полностью зависитContext
от действия, поэтому, если мне нужно что-то общее, что я могу повторно использовать и обрабатывать во многих действиях, я могу создавать свои собственные пользовательские макеты или представления ... Я не буду заботиться об этом дополнительном слое разработки сложности, который будут добавлять фрагменты.лучшая обработка для другого разрешения ==> ОК для планшетов / телефонов в случае длительного процесса, когда мы можем показать два (или более) фрагмента в одной и той же операции в планшетах и один за другим в телефонах. Но почему я всегда использовал фрагменты ?
обработка обратных вызовов для навигации между фрагментами (то есть: если пользователь вошел в систему, я покажу фрагмент, а я покажу другой фрагмент). ===> Просто попробуйте посмотреть, сколько ошибок есть в Facebook SDK Log-in из-за этого, чтобы понять, что это действительно (?) ...
учитывая, что Android-приложение основано на Деятельностях ... Добавление других жизненных циклов в Деятельности было бы лучше для разработки Приложения ... Я имею в виду, что модули, сценарии, управление данными и связность были бы лучше разработаны, в этом путь. ===> Это ответ того, кто привык видеть Android SDK и Android Framework с видением фрагментов. Я не думаю, что это неправильно, но я не уверен, что это даст хорошие результаты ... И это действительно абстрактно ...
====> Зачем мне усложнять свою жизнь, больше программировать, использовать их всегда? иначе, почему это лучший метод, если в некоторых случаях это просто инструмент? каковы эти случаи?
источник
Ответы:
Фрагмент - это модульный раздел Действия, который имеет собственный жизненный цикл, получает собственные входные события, которые можно добавлять или удалять во время выполнения действия (что-то вроде «вспомогательного действия», которое можно повторно использовать в различных действиях).
Помимо очевидного преимущества использования фрагментов, оптимизации пользовательского интерфейса на разных экранах, оно позволяет управлять фоновой обработкой действий без видимого компонента пользовательского интерфейса.
Сейчас...
Хотя это и рекомендуется, вам это не нужно, если только вы не планируете управлять жизненным циклом отдельных элементов и / или повторно использовать состояние стека или историю предыдущих представлений.
источник
Если есть вариант использования «шлюза» для скептиков фрагментов, это, вероятно, диалоги. Длинноволновый устаревшие методы
showDialog(...)
,onCreateDialog(...)
и т.д., были хороши в том , что рамки будут называть их автоматически уничтожать и воссоздавать диалоги , когда хостинг активность была разрушена и воссоздана. Если вы создаете свои собственные диалоги напрямую, вы должны сами управлять всем этим. Но если вы используете aDialogFragment
, вы можете еще раз позволить фреймворку управлять ими за вас. В этом случае фрагменты могут значительно упростить ваше кодирование.источник
Я задавал этот вопрос более года назад.
Я использую фрагменты каждый день, и я бы порекомендовал это.
Прежде всего, я хочу сказать, что использование фрагментов - это всего лишь вариант, и это будет рефлексом для его рассмотрения, как только вы начнете их использовать.
Преимущества:
1 / это помогает модулировать код, где вы можете иметь полный поток в одном действии, в отдельных фрагментах. Пример: + список / сетка и детализация, + логин и регистрация, забыть пароль, + и т. Д. Это здорово получить код многократного использования, который вы всегда можете скопировать и вставить в разные проекты.
2 / у вас есть новый жизненный цикл, полный неприятностей, это правда, но с преимуществами. Пример: сохраненный фрагмент экземпляра великолепен, потому что он решает проблему ориентации.
3 / вы можете управлять потоком своих фрагментов по событиям и слушателям из Activity.
4 / стопка ваших фрагментов в вашей деятельности.
5 / Используйте одну и ту же панель действий на многих экранах.
И много других...
Иногда я все еще использую Activity как единственный контейнер, особенно для случая с камерой. Некоторые API Android и некоторые сторонние библиотеки нелегко реализовать фрагментарно.
Ну, это как любой инструмент, вы должны рассмотреть его и судить сами, лучше ли использовать его в том или ином случае.
Я надеюсь, что это может помочь !!!
источник