Вступ:
Основний шаблон "Підручник з фрагментами" виглядає приблизно так:
- На планшеті мати список зліва, реквізити праворуч.
- Обидва є
Fragments
і обидва проживають в одному і тому жActivity
. - На телефоні мати список
Fragment
в одномуActivity
. - Запустіть нове
Activity
з деталямиFragment
.
(наприклад, API API API 3.0 для Dianne Hackborn та посібник з API Fragments )
На обох пристроях функціональність знаходиться в Fragments
. (просто)
На планшеті весь додаток - 1Activity
, по телефону - багатоActivities
.
Запитання:
- Чи є причина розділити додаток для телефону на багато
Activities
?
Одна з проблем цього методу полягає в тому, що ви повторюєте багато логіки в основному планшеті Activity
та в окремому телефоні Activities
.
- Чи не було б простіше зберегти модель 1-ї діяльності в обох випадках, використовуючи однакову логіку вмикання
Fragments
та виходу (просто використовуючи інший макет)?
Таким чином, більша частина логіки перебуває в Fragments
собі, і є лише одне Activity
- менше дублювання коду.
Крім того, що я читав про те ActionBarSherlock
, що це, здається, найкраще працює Fragments
замість цього Activities
(але я з ним ще не працював).
Чи підручники надто спрощені, чи я пропустив щось важливе в цьому підході?
Ми успішно випробували обидва підходи в офісі - але я збираюся розпочати масштабніший проект і хочу зробити так, щоб як можна легше було для себе.
Деякі посилання на пов'язані питання:
- Дилема: коли використовувати фрагменти та види діяльності:
- Шаблони, коли використовувати перехід активності проти динамічних фрагментів
- Android - мені потрібні роз'яснення фрагментів щодо діяльності та поглядів
- Діяльність чи фрагменти в Android?
- Кілька фрагментів та дизайн взаємодії діяльності
- Отже, які точні переваги фрагментів в Android 3.0?
Оновлення
Початок щедрості - все ще не впевнений, чому мені потрібно дублювати логіку програми в моїй діяльності на планшеті та в кожній телефонній діяльності.
Також знайшла цікаву статтю хлопців на Площі, яку варто прочитати:
onItemSelected()
методі "Діяльність" є метод. У моєму "справжньому" додатку я маю багато списків і підсписів. Ця закономірність говорить про те, що в моїй вкладці "Активність" повинен бути onItemSelected()
метод обробки кожного зі списків. Плюс у телефонних заходах кожен повинен мати ту ж саму логіку, що дублюється всередині кожного з них. ІМХО набагато краще ввести логіку "Виділена деталь" у кожен фрагмент - не існує дублювання, і я віддаю перевагу такому способу структурування коду. Я сподіваюся, що це допоможе