Разница между fragmentом и fragmentацией

Мой вопрос отличается от очевидных различий наследования, каковы основные различия между Fragment и FragmentActivity ? К какому сценарию подходят каждый class? Я пытаюсь понять, почему оба эти classа существуют …

Fragment – это раздел Activity , который имеет:

  • собственный жизненный цикл
  • получает свои входные события
  • могут быть добавлены или удалены во время работы Activity .

Fragment всегда должен быть встроен в Activity .

Fragments не являются частью API до HoneyComb (3.0). Если вы хотите использовать Fragments в приложении с таргетингом на платформу до HoneyComb, вам нужно добавить пакет поддержки в свой проект и использовать FragmentActivity для хранения ваших Fragments . Класс FragmentActivity имеет API для работы с Fragments , тогда как class Activity до HoneyComb – нет.

Если ваш проект нацелен только на HoneyComb или новее, вы должны использовать Activity а не FragmentActivity чтобы удерживать ваши Fragments .

Некоторые детали:

Используйте android.app.Fragment с Activity . Используйте android.support.v4.app.Fragment с FragmentActivity . Не добавляйте Fragment пакета поддержки в действие, так как это приведет к выбросу исключения.

LoaderManager нужно соблюдать: FragmentManager и LoaderManager имеют отдельные версии поддержки для FragmentActivity:

Если вы используете Fragment в Activity (HoneyComb и up), вызовите

  • getFragmentManager() чтобы получить getFragmentManager() android.app.FragmentManager
  • getLoaderManager() чтобы получить android.app.LoaderManager

если вы используете Fragment в FragmentActivity (pre-HoneyComb), вызовите:

  • getSupportFragmentManager() чтобы получить getSupportFragmentManager() android.support.v4.app.FragmentManager .
  • getSupportLoaderManager() чтобы получить getSupportLoaderManager() android.support.v4.app.LoaderManager

так что не делай

 //don't do this myFragmentActivity.getLoaderManager(); //instead do this: myFragmentActivity.getSupportLoaderManager(); 

или

 //don't do this: android.app.FragmentManager fm = myFragmentActivity.getSupportFragmentManager(); //instead do this: android.support.v4.app.FragmentManager fm = myFragmentActivity.getSupportFragmentManager() 

Также полезно знать, что, хотя fragment должен быть встроен в Activity он не должен быть частью макета Activity . Он может использоваться как невидимый работник для своей деятельности, без собственного интерфейса.

FragmentActivity – наша classическая деятельность с поддержкой fragmentов, не более того. Поэтому FragmentActivity необходимо, когда fragment будет прикреплен к Activity.

Фрагмент скважины – хороший компонент, который копирует основные действия Activity, все еще не является автономным компонентом приложения, таким как Activity, и его необходимо привязать к Activity для работы.

Смотрите подробнее

Подумайте, что FragmentActivity является обычным classом Activity, который может поддерживать fragmentы. До сотовой связи class активности не мог напрямую сверять fragmentы, поэтому это необходимо для действий, которые используют fragmentы.

Если ваша целевая дистрибуция – Honeycomb, и помимо нее вы можете продлить действие.

Также fragment следует рассматривать как «суб-активность». Он не может существовать без активности. Всегда думайте о fragmentе как суб-активности, и вы должны быть хорошими. Таким образом, активностью будет родительский и fragment (ы) дочернего типа символических отношений.

FragmentActivity – это специальная деятельность, содержащая fragment. В этих нескольких словах я объясняю вам одно из главных важных изменений, которое с помощью андроида 3.0 (HoneyComb), андроидная команда вставила в android sdk.

Благодаря этой новой концепции ваши fragmentы кода и макета становятся более гибкими и удобными. Если вы ищете в google, есть много примеров.

  • Как получить панель инструментов из fragmentа?
  • Дублирование fragmentов на транзакции fragmentов
  • Начать fragment через Intent внутри fragmentа
  • обновить fragment UI от fragmentа.
  • onActivityResult не вызывается в fragmentе
  • ListFragment не принимает мой макет
  • Полный рабочий пример сценария анимации с тремя fragmentами Gmail?
  • Неверный способ обработки fragmentации при изменении ориентации
  • (Устаревший) Фрагмент onOptionsItemSelected не вызывается
  • Как добавить функцию «Назад» в WebView внутри fragmentа?
  • Начать операцию из fragmentа
  • Interesting Posts

    Соглашения для методов доступа (getters и seters) в C ++

    Почему значок конверта панели задач Outlook иногда остается активным, даже если у меня нет непрочитанного письма?

    SATA HDD заикается при чтении (светодиод включен)

    Преобразование пути изображения в строку base64

    Как я могу контролировать состояние сетевого подключения в Android?

    Parallel.ForEach и async-wait

    Поиск UUID в тексте с регулярным выражением

    android EditText – завершение ввода текста

    Невозможно выполнить удаленный сценарий poweshell на сервере Windows Server 2016 без установки

    Динамическое предложение WHERE в LINQ

    dcast error: «Отсутствует функция агрегирования: по умолчанию – длина»

    Невозможно выбрать форму программы по умолчанию, открытую с помощью контекстного меню в Windows 7

    Как преобразовать дерево выражений в частичный запрос SQL?

    Я просто назначил переменную, но переменная echo $ показывает что-то еще

    Зарегистрировать 32-битную COM-DLL до 64 бит Windows 7

    Давайте будем гением компьютера.