fragments&loaders
DESCRIPTION
Обзор android-compatibility\v4 - Fragments&LoadersTRANSCRIPT
FRAGMENTS&LOADERS
Новый взгляд на Activity
Содержание
Fragments Loaders API Demos v4
Проблема перенасыщенной Activity
Activity - 141 метод Для работа простейшего приложения
Вам потребуется переопределить кучу из них
Для методов, связанных с Dialogs, Menus, Activity Results, возникают большие Switch
Сквозная функциональность функционал присутствующий в
нескольких Activity ActionBar MainMenu
Решение проблемы №1
Явное делегирование Функционал инкапсулируется в отдельном
классе - Manager Методы жизненного цикла Activity напрямую
вызываются каждого Manager Manager-ы явно друг на друга ссылаются
Недостатки Трудное добавление/удаление Manager в Activity Дублирование кода при невозможности
отнаследоваться от базовой Activity Громоздкость в методах жизненного цикла
Решение проблемы № 2
Упрощающий жизнь собственный “framework” (Aspects) Наследуемся от Aspects Методы жизненного цикла Activity вызываются
автоматически с помощью AspectManager Наследование от *AspectedActivity Aspect-ы могут получить другие Aspect-ы из
AspectManager Недостатки
Слабая документированность Не все метода жизненного цикла охвачены Поддержка управления только из кода -
нет возможности их .xml
Решение проблемы №3
Точнее android-compatibility\v4
Fragments
История
Появились в Android 3.0 Презентуется как UI новинка Побочный эффект – решение нашей
проблемы Вышли как дополнение для Android
<3.0Android Compatibility package, revision 1 Именно это package и был исследован 3.0 пока 0.3%
Внешнее описание
Часть Activity – часть UI или часть логики
FragmentManager - Fragment знает о других Fragment-ах
Жизненные цикл Fragment совпадает с жизненным циклом Activity
Находка Fragmented layout
Жизненныйцикл Fragment
FragmentActivity FragmentManager
Находка Fragmented layout
UI Fragment - <fragment/>
NUI Fragment- FragmentTransaction
Взаимосвязь - Fragment Manager
Полезные Fragments
ListFragment DialogFragment
LoggingFragment - его нет, но очень полезный
Интересности и проблемы
Retain Instance (see Demos) Fragments Stack (see Demos) CursorAdapter - он тут свой
Activity создается два раза во время выдвижения клавиатуры – и это нормально – два configuration change
Проблема именно compatibility редакции один NUI fragment В landscape layout 2 UI fragment в layout.xml В portrait layout 1 UI fragment в layout.xml При смене ориентации: IllegalStateException: Fragment did not create
a view. Пытается найти 2 UI fragment и вместо него берет NUI fragment Связанно с понятием container - магия...
Утилитные полезные классы
Loaders
Loader
Асинхронный загрузчик AsyncTaskLoader – абстрактный класс,
основанный на AsyncTask CursorLoader – его наследник,
работает с Cursor
API Demos v4
Примеры использования Fragments&Loaders
API Demos
Идет в поставке с compatibility package \android-sdk-windows\
android-compatibility\v4\samples\ApiDemos\ Внимание - target version 11 - Android 3.0 Нам интересно: App/Fragment support
Fragment*Support Layout Retain Instance Dialog or Activity Menu
Почему они мне так понравились
Fragments - Разделение логики Fragments - Отличная инкапсуляция логики Имеет вид строгого шаблон
Помощь новичкам Рамки для фантазии программистов
Авторитетное готовое решение Sources Inclusive
Всегда можно посмотреть Всегда можно пройтись под debug
Грядет эра honeycomb
Вопросы
Меня зовут Рома Готов к вопросам