Шаблоны, когда следует использовать Activity Transition vs Dynamic Fragments

Существуют ли какие-либо шаблоны, как обрабатывать переходы интерфейса в действиях Android против фрагментов? В настоящее время я изучаю пользовательский интерфейс, который имеет не более 3 столбцов в Landscape. Я бы хотел, чтобы пользовательский интерфейс начинался с 1 колонки на всем протяжении экрана, а затем по выбору чего-то перемещался во втором столбце, а затем нажимал на что-то во втором затухании в 3-м на планшетах и ​​телефонах и исчезал 1-й столбец на телефонах. Мне интересно, когда я должен сделать это как переход на активность, и когда я должен просто использовать фрагменты с представлениями, которые появляются. Насколько я читал фрагменты, можно переместить на другие действия, поэтому мой выбор либо реализует действия со статическими макетами столбцов, которые затем переходят с фрагментами с ними, либо имеют одно действие со всеми тремя столбцами и имеют действие, управляющее появлением Фрагменты. Оба подхода могут работать, но меня интересовали плюсы и минусы из-за большого количества углов для обоих решений.

Есть два вопроса, похожих на то, что я прошу, но не совсем отвечаю на мой вопрос

Ответ 1

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

У нас есть пример кода под названием "Honeycomb Gallery", который вы можете посмотреть здесь , который имеет макет панели с двумя колонками плюс действие и возможность чтобы показать/скрыть крайний левый столбец. Это должно дать вам хорошее начало, чтобы выяснить, как сделать макет для нескольких фрагментов и показать/скрыть их.

FYI, один важный компромисс с использованием нескольких фрагментов в Activity вместо нескольких видов деятельности - это то, что фрагменты напрямую не реагируют на намерения - например, если у вас было приложение для заметок, где страница "Просмотреть примечание" была Activity, и вы изменили ее так, чтобы в основной операции был фрагмент "View Note", тогда вам нужно было настроить его так, чтобы основная активность получила идентификатор примечания и действие заметки (создание, просмотр, редактировать, что бы то ни было) в намерении, а не просто иметь активность "заметки", получая идентификатор примечания в намерении. Затем основной Деятельности необходимо будет настроить фрагменты на странице. Неважно, но если важна внешняя доступность к различным частям вашего приложения через Intent, тогда может быть проще разбить приложение на несколько видов деятельности, а также использовать фрагменты для представления отдельных компонентов.

Ответ 2

Основываясь на странице API флагов Android 3.0, активность является автономной, в то время как фрагмент может быть как мини-актив, который должен быть размещен в пределах фактической Деятельности.

Далее говорится, что введение API-интерфейса Fragment дало разработчикам Android возможность решить многие проблемы, которые разработчики ударов попали в "Деятельность", поэтому в Android 3.0 полезность Fragment выходит далеко за рамки настройки только для разных экранов:

Я думаю, что использование одного действия для приложения не обязательно является неправильным решением, а всего лишь вопросом стиля. Это решение, которое вы должны сделать на основе того, что вы пытаетесь выполнить.

Однако введение фрагментов было решено решить проблемы реального мира. Исходя из этого, я бы рекомендовал вам написать код "Доказательство концепции" и оценить результаты. В это время это может быть единственный реальный тест, который будет иметь значение

Ответ 3

Использование действий для полноэкранного режима

Использовать фрагменты для части или без экрана (но не для службы)

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

Основное приложение, в котором находится все это приложение, - это приложение, а вкладки - это просто представление, которое вызывает диспетчер фрагментов.

Тем не менее, я использую действия для сложных действий пользователя глубже в приложении. Например. если кто-то воспроизводит видео, просматривает страницу детализации и разделы фотогалереи/слайд-шоу, потому что они все полноэкранные компоненты.

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

Итак, у меня есть активность → фрагменты зданий → запуск полного экрана. Действия для специальных команд.