Вступ:
Основний шаблон "Підручник з фрагментами" виглядає приблизно так:
- На планшеті мати список зліва, реквізити праворуч.
- Обидва є
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()метод обробки кожного зі списків. Плюс у телефонних заходах кожен повинен мати ту ж саму логіку, що дублюється всередині кожного з них. ІМХО набагато краще ввести логіку "Виділена деталь" у кожен фрагмент - не існує дублювання, і я віддаю перевагу такому способу структурування коду. Я сподіваюся, що це допоможе