Разница между Fragment и FragmentActivity
мой вопрос помимо очевидных различий в наследовании, каковы основные различия между Fragment и FragmentActivity? К каким сценариям лучше всего подходит каждый класс? Я пытаюсь понять, почему существуют оба этих класса...
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.FragmentManagergetLoaderManager()и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