ANDROID: СТВОРЕННЯ ФРАГМЕНТАСприймайте фрагмент як модульну частині activity, яка має свій власний життєвий цикл, отримує свої вхідні події, яку ви можете додати або видалити, поки запущена activity (сортувати подібно "sub activity", яку можете використовувати в різних activity). Цей урок показує, як розширити клас Fragment використовуючи Support Library так, щоб ваш додаток залишався сумісним з пристроями під управлінням настільки старих версій системи, як Android 1.6. Примітка: Якщо вирішите, що мінімальний рівень API вашого додатка вимагає 11 або вище, то вам не треба використовувати Support Library і можете замість неї використовувати фреймворк, вбудований в клас Fragment і суміжні API. Просто знайте, що даний урок зосереджений на використанні API з Support Library, який використовує певний підписаний пакет та іноді трохи різні імена API, ніж версії, включені в платформу. Перш ніж почати цей урок, ви повинні налаштувати Android-проект на використання Support Library. Якщо ви не використовували Support Library раніше, то налаштуйте проект на використання бібліотеки v4, слідуючи документу Support Library Setup. Тим не менш, ви також можете включити панель дій у ваші activity, використовуючи натомість бібліотеку v7 appcompat, яка сумісна з Android 2.1 (API рівня 7), а також включає в себе API Fragment. СТВОРЕННЯ КЛАСУ FRAGMENTЩоб створити фрагмент, розширіть клас Fragment, потім перевизначте ключові методи життєвого циклу для вставки логіки вашого додаток, подібно до того, як ви б робили з класом Activity. import android.os.Bundle; Так само, як activity, фрагмент повинен здійснювати інші функції зворотного виклику життєвого циклу, які дозволяють вам управляти його станом, який додається або видаляється з activity і як activity переходить між своїми станами життєвого циклу. Наприклад, коли викликається метод onPause() activity, будь-які фрагменти в activity також отримують виклик onPause(). ДОДАВАННЯ ФРАГМЕНТУ В ACTIVITY З ВИКОРИСТАННЯМ XMLОскільки, фрагменти багаторазові, то модульні компоненти користувальницького інтерфейсу (UI), кожен екземпляр класу Fragment повинні бути пов'язані з батьківським FragmentActivity. Ви можете досягти цього об'єднання, визначаючи кожен фрагмент у XML файлі макету вашої activity. Примітка: FragmentActivity - це спеціальна activity з умовою в Support Library обробляти фрагменти версій системних старіших 11 рівня API. Якщо низька версія системи, підтримувана вами є рівнем 11 API або вище, то можете використовувати регулярну Activity. Приклад файлу макета, який додає два фрагменти до activity, коли екран пристрою вважається "великим" (вказаний позначенням large в імені каталогу): res/layout-large/news_articles.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" Порада: Щоб дізнатися більше про створення макетів для екранів різних розмірів, читайте Supporting Different Screen Sizes Потім застосуйте макет до вашої activity: import android.os.Bundle; Якщо використовуєте v7 appcompat library, то ваша activity повинна використовувати розширення ActionBarActivity, яке є підкласом FragmentActivity (для отримання додаткової інформації, читайте про встановлення панелі дій). Примітка: Коли ви додаєте фрагмент в макет activity шляхом визначення фрагмента в XML файлі макета, то не зможете видалити фрагмент під час виконання. Якщо плануєте поміняти свої фрагменти при і протягом взаємодії з користувачем, то повинні додати фрагмент в activity перш, ніж activity буде запущена, як показано в наступному уроці. (Джерело: developer.android.com) |