Когда и зачем использовать фрагменты в приложениях Android?

Я знаю, почему использовать фрагменты, и сайт разработчика Android хорошо объясняет это. Но в большинстве случаев я хочу, чтобы на планшетах разные части имели свое собственное особое поведение и пользовательский интерфейс, и я не знаю, как фрагменты могут помочь. В большинстве случаев я думаю, что быстрее создать 2 разных действия (1 для планшетов и 1 для мобильных телефонов) и поделиться общим поведением и событиями в третьем классе. Поэтому помните, почему я должен использовать фрагменты?

Ответ 1

Фрагменты - это больше польза от пользовательского интерфейса, на мой взгляд. Удобно для пользователя иногда видеть два разных вида двух разных классов на одном экране. Если в ваш момент творчества вы решите, что было бы неплохо отобразить ваше приложение, скажем, в спискеView, который занимает половину экрана и webView, который занимает вторую половину, - так что, когда вы нажимаете на элемент списка в фрагмент A, он передает намерение webView в фрагменте B, и вдруг вы видите, что вы только что нажали без активности переключения приложений, - тогда вы можете использовать фрагмент. Это просто пример, который я придумал с головы.

Нижняя строка: Фрагменты - это два или более действия на экране одновременно.

Ответ 2

преимущества, которые я вижу при использовании фрагментов:

  • Инкапсуляция логики.
  • Лучший дескриптор жизненного цикла фрагмента.
  • Многократное использование в других действиях.

недостатки я вижу:

  • Дополнительный код (например, создание экземпляра диспетчера фрагментов, добавление транзакции фрагмента, запись обратных вызовов фрагмента)
  • Связь между фрагментами и действиями сложнее. Как сказал @jonney, вам нужно иметь дело с разборчивым интерфейсом для сериализации ваших объектов, которые вы хотите передать.

Итак, когда вы решили использовать фрагмент, я задал себе следующие вопросы:

  • Является ли жизненный цикл фрагмента отличным от жизненного цикла активности?

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

  • Будет ли фрагмент использоваться в нескольких действиях?

События ввода пользователя будут повторно использоваться, если вы используете фрагмент.

  • Мало ли количество сообщений между фрагментом и активностью?

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

Ответ 3

Google советует ВСЕГДА использовать фрагменты.

Зачем? Это просто:

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

Зачем тебе это нужно? Опять же, это просто.

Android 4 (ICS) поддерживает как смартфоны, так и планшеты. Это означает, что приложение SAME будет работать на смартфоне и планшете, и они могут сильно отличаться.

Таблетки имеют большие экраны, которые будут пустыми или неиспользуемыми - если вы не назначите их должным образом.

Это means- Помещение двух фрагментов на один вид деятельности, например, "Список контактов" и "Контактная информация".

Smatphone отобразит список контактов, а на touch- отобразит контактную информацию.

На планшете пользователь по-прежнему будет видеть список, и информация будет рядом с ним.

2 fragments- на одном экране....

Умный? да... должен быть совместим с Android 1.6......


################################################## ###########

Хорошо, уже знал? затем - просто попытайтесь понять, в чем дело:

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

Возьми?

для получения дополнительной информации, проверьте это. Я действительно думаю, вам просто нужно поймать концепцию....

Ответ 4

Эксперты скажут вам: "Когда я увижу пользовательский интерфейс, я узнаю, следует ли использовать Activity или Fragment". В начале это не имеет никакого смысла, но со временем вы действительно сможете узнать, нужен ли вам Fragment или нет.

Есть хорошая практика, которую я нашел очень полезной для меня. Мне пришло в голову, когда я пытался что-то объяснить моей дочери.

А именно, представьте ящик, представляющий экран. Можете ли вы загрузить в этом окне другой экран? Если вы используете новый флажок, вам нужно будет скопировать несколько элементов из 1-го окна? Если ответ "Да", тогда вы должны использовать фрагменты, потому что root Activity может содержать все дублированные элементы, чтобы сэкономить ваше время при их создании, и вы можете просто заменить части окна.

Но не забывайте, что вам всегда нужен контейнер контейнера (Activity), или ваши части будут разбросаны. Итак, одна коробка с частями внутри.

Соблюдайте осторожность при неправильном использовании коробки. Эксперты Android UX советуют (вы можете найти их на YouTube), когда мы должны явно загрузить другой Activity, вместо этого использовать фрагмент (например, когда мы имеем дело с ящиком навигации, который имеет категории). Как только вы почувствуете себя комфортно с Фрагментами, вы сможете посмотреть все их видео. Более того, они являются обязательным материалом.

Можете ли вы сейчас взглянуть на свой интерфейс и выяснить, нужны ли Activity или Fragment? Вы получили новую перспективу? Думаю, что да.:)

Ответ 5

Исторически каждый экран в приложении для Android был реализован как отдельный Activity. Это создает проблему передачи информации между экранами, поскольку механизм Android Intent не позволяет передавать ссылочный тип (т.е. Объект) непосредственно между Activity. Вместо этого объект должен быть сериализован или доступен глобально доступный справочник.

Чтобы сделать каждый экран отдельным фрагментом, эта головная боль, передаваемая данным данным, полностью исключается. Фрагменты всегда существуют в контексте данного действия и всегда могут получить доступ к этой Деятельности. Сохраняя интересующую информацию в рамках Activity, фрагмент для каждого экрана может просто получить доступ к ссылке на объект через Activity.

https://softwareengineering.stackexchange.com/questions/244771/why-use-android-fragments

Ответ 6

Первичная поддержка фрагментов более динамична и большой экран пользовательского интерфейса, например Tablet. Поскольку экран планшета намного больше, чем обычный телефон. Существует больше возможностей для объединения и обмена пользовательским интерфейсом.

Фрагмент разрешает такую ​​конструкцию без необходимости такого сложного изменения в иерархии представления.

Разделяя макет активности в фрагменте, мы можем изменить внешний вид активности во время выполнения