МЕНЕДЖЕР ФРАГМЕНТІВ – програмування Android

&nbsp

Як було зазначено вище, фрагменти можна створювати з програмного коду, а також в макетах Програмне управління фрагментами здійснюється за допомогою екземпляра класу FragmentManager, одержуваного від Activity допомогою методу getFragmentManager Менеджер фрагментів обробляє три важливі групи операцій: тегування і знаходження фрагмента, виконання транзакцій і роботу зі стеком переходів тому Доповнимо нашу експериментальну програму всіма цими компонентами і по черзі їх досліджуємо

Щоб адаптувати додаток-приклад до використання фрагментів, що створюються за допомогою програмування, потрібно внести всього два зміни: одне в макеті main xml, а інше – в активності Simpl eFragment У макеті елемент-фрагмент замінюється практично ідентичним FrameLayout:

SimpleFragment раніше буде використовувати цей макет, як і раніше Але тепер макет автоматично не створювати новий фрагмент Ця операція буде відбуватися в наступному коді:

Ці зміни не додають у додаток ніяких нових функцій При запуску ця версія програми працює так само, як і наша перша версія, побудована на основі макетів

Важливою особливістю даного фрагмента коду є використання тегів Цілком можлива ситуація, в якій метод onCreate, що відноситься до активності, буде викликатися, будучи як і раніше повязаним з фрагментом, який був створений раніше Якщо просто додавати новий фрагмент при кожному виклику onCreate, то відбудеться своєрідна витік фрагментів Щоб уникнути цього, використовуються функції тегірованія і знаходження, надаються менеджером фрагментів

Третій аргумент методу add – це унікальний тег (мітка), що присвоюється фрагменту, коли цей фрагмент додається до активності Після створення тега метод findFragmentByTag менеджера фрагментів може використовуватися для відновлення конкретного, окремо взятого фрагмента, який доданий з вказаним тегом У прикладі ми перевіряємо, чи вже існує фрагмент із заданим тегом, перед тим як створити новий екземпляр фрагмента Якщо такого фрагмента немає, то він створюється Якщо фрагмент вже існує, то ніяких дій не потрібно Так ми гарантуємо, що кожну конкретну роль буде грати тільки один фрагмент, і страхуємося від витоків, повязаних з фрагментами

Тегування і знаходження також можуть використовуватися і в інших цілях Коли активності потрібно повідомити про будь-які зміни стану прикріпленого фрагмента, для цього активність зазвичай заздалегідь тегірует цей фрагмент, а потім, коли він буде потрібно, використовує FragmentManager для пошуку тега і отримання посилання на нього

Джерело: Android Програмування на Java для нового покоління мобільних пристроїв

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*