fragments&loaders

Post on 23-Jun-2015

1.677 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Обзор android-compatibility\v4 - Fragments&Loaders

TRANSCRIPT

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

Вопросы

Меня зовут Рома Готов к вопросам

top related