Різниця між активністю та фрагментальною активністю


228

Я працював на фрагментах і наткнувся на дві речі Activityі FragmentActivityякі кілька разів використовували. Я хочу знати , що є якась -то різниця між цими двома, тому що , коли я змінив Activityз FragmentActivity, це не мало ніякого впливу на додатку.

Відповіді:


316

A FragmentActivity- це підклас Activity, створений для Android Support Package .

FragmentActivityКлас додає пару нових методів для забезпечення сумісності зі старими версіями Android, але крім цього, там дійсно не так багато різниці між ними. Просто переконайтеся , що ви зміните всі виклики getLoaderManager()і getFragmentManager()до getSupportLoaderManager()і getSupportFragmentManager()відповідно.


4
Привіт, я не змінив дзвінки на getSupportLoaderManager () та getSupportFragmentManager () .. але все одно він працює нормально.
Новичок

31
Ось що робить це таким небезпечним: P. FragmentActivityуспадковує getLoaderManagerі getFragmentManagerметоди, Activityі в результаті компілятор не скаржиться. Цілком ймовірно, що ви імпортуєте невірно LoaderManagerі FragmentManagerкласи теж. Переконайтеся, що ви імпортуєте ці класи з пакету підтримки ( android.support.v4.app), а не Android SDK ( android.app).
Алекс Локвуд

1
Чи можемо ми сказати, що якщо ми хочемо використовувати фрагменти для версії Android 2.x, нам потрібно використовувати FragmentActivity nad для версії, яка підтримує фрагменти, нам потрібно використовувати Activity.
Новичок

55
Я думаю, що те, що ти кажеш, є правильним. Але просто, щоб бути на 100% зрозумілим ... використовуйте, Activityякщо ви використовуєте android.app.Fragment; використовувати, FragmentActivityякщо ви використовуєте android.support.v4.app.Fragment. Ніколи не прив'язуйте android.support.v4.app.Fragmentдо а android.app.Activity, оскільки це спричинить викид виключення.
Алекс Локвуд

13
Спочатку спробуйте цей підручник (як це використовувати Fragmentsв додатку). Потім перейдіть до цього підручника (як використовувати Fragments з пакету підтримки). Документація на сайті розробників варто читати , а також.
Алекс Локвуд

4

FragmentActivityє частиною бібліотеки підтримки , тоді Activityяк клас за замовчуванням Framework. Вони функціонально рівноцінні.

Ви повинні завжди використовувати FragmentActivityі android.support.v4.app.Fragmentзамість платформи по замовчуванням Activityі android.app.Fragmentкласів. Використання за замовчуванням платформи означає, що ви покладаєтесь на будь-яку реалізацію фрагментів, яка використовується на пристрої, на якому ви працюєте. Вони часто мають кілька років, і містять помилки, які з тих пір були виправлені в бібліотеці підтримки.


1
Примітка: minSdkVersionбібліотека підтримки становить 14 років від версії 26.xx
Євген
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.