Страницы

Поиск по вопросам

вторник, 31 декабря 2019 г.

В чем смысл фрагментов (fragment) в Android?

#android_fragment #android


В чем смысл фрагментов (fragment) в Android?    


Ответы

Ответ 1



Что бы понять смысл темплейтов, представьте классическую ситуацию с программой чтения новостей. На телефоне она будет выглядеть как одна активити с списком и одна - собственно новость. На планшете, где экран побольше, можно эти две активити расположить рядом. И что бы не делать дважды одну и ту же работу, можно просто сделать два фрагмента и разместить их на активити. Фрагменты - это "высокоуровневые виджеты". В делфи также есть фрагменты. Они называются "фреймы" (класс TFrame).

Ответ 2



У них есть ещё одна потрясная функция - setRetainInstance(boolean). Это позволяет обойти некоторые ограничения lifecycle activity и сохранять данные/логику прямо во фрагментах. Другими словами при назначении этого флага фрагмент не уничтожается как activity а осатется до выхода из программы. Ну а DialogFragment позволит вам довольно просто добавлять свой собственный View для диалогового окна.

Ответ 3



Фрагмент (Fragment) - является модульной частью активити. Для архитектуры в Android удобно воспринимать, как продолжение основной View, иногда называют SubView. Очень хорошо описаны фрагменты в оф доках: https://developer.android.com/guide/components/fragments.html?hl=ru Смысл фрагментов и их основное преимущество изначально заключалось в том, что вы можете показать 2 фрагмента на 1 Screen. Но вы не можете показать 2 Activity в 1 Screen, это невозможно (кроме мультипроцессов, MultiWindow). Позже данный подход в MaterialDesign получил название, как правильная организация интефрейсов и навигации и название его MasterDetailFlow. Данную концепию, очень удобно организовывать именно через фрагменты. Иначе приходилось бы писать отдельную логику для допольнительной ситуации, и поддерживать обе части, что очень плохо. Сейчас Фрагменты в Android являются неотъемлемой частью разработки полноценных приложений, и они используеются системой с API 3.0. Фрагметны позволяют создавать более удобную декомпозицию View, они лекго заменяемы в Activtiy, и могут лекго переезжать в другие проекты. Только с помощью фрагментов вы можете правильно организовать ViewWidgetы: NavigationView, DrawerLayout, NavigationBottom, BottomSheet, FragmentsDailogs, ViewPagers etc. (кончено можно и без, но порой это сложно или очень сложно) Создать красивые переходы и анимации намого лечге, а порой (Transitions) можно только с помощью фрагментов.

Комментариев нет:

Отправить комментарий