Разница между Fragment и FragmentActivity



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

644   4  

4 ответов:

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

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

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

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

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

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

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

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

если вы используете Fragment на Activity (соты и вверх), звоните

  • getFragmentManager() и android.app.FragmentManager
  • getLoaderManager() и android.app.LoaderManager

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

  • getSupportFragmentManager() и android.support.v4.app.FragmentManager.
  • getSupportLoaderManager() и android.support.v4.app.LoaderManager

и не do

//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()

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

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

Ну фрагмент хороший компонент, который копирует основные поведения деятельности, все еще не автономный компонент приложения, как активность и должен быть прикреплен к деятельности для того, чтобы работать.

посмотреть здесь для более подробной информации

подумайте о FragmentActivity как обычный класс активности, который может поддерживать фрагменты. До honeycomb класс activity не мог напрямую поддерживать фрагменты supoprt, поэтому это необходимо для действий, использующих фрагменты.

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

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

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

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

Comments

    Ничего не найдено.