Я знаю, что Activities
предназначены для представления одного экрана моего приложения, в то время как Fragments
предназначены для многократного использования макетов пользовательского интерфейса со встроенной в них логикой.
Еще недавно я разработал приложение, в котором говорилось, что они должны быть разработаны. Я создал Activity
для представления экрана моего приложения и использовал фрагменты для ViewPager
или Google Maps
. Я редко создавал ListFragment
или другой пользовательский интерфейс, который можно использовать несколько раз.
Недавно я наткнулся на проект, который содержит только 2 Activities
одно - это действие SettingsActivity
а другое - MainActivity
. Макет MainActivity
заполнен множеством скрытых фрагментов полноэкранного пользовательского интерфейса, и отображается только один. В логике Activity
есть много FragmentTransitions
между различными экранами приложения.
Что мне понравилось в этом подходе, так это то, что, поскольку приложение использует ActionBar
, оно остается неизменным и не перемещается с анимацией переключения экрана, что происходит при переключении Activity
. Это дает более плавное ощущение этих переходов экрана.
Итак, я думаю, что я прошу поделиться вашей текущей манерой разработки по этой теме, я знаю, что на первый взгляд это может выглядеть как вопрос, основанный на мнении, но я смотрю на него как на вопрос о дизайне и архитектуре Android... Не совсем основанный на мнении один.
ОБНОВЛЕНИЕ (01.05.2014): После этой презентации Эрика Бёрка из Square (я должен сказать, что это отличная презентация с множеством полезных инструментов для разработчиков Android. И я никак не связан с Square)
http://www.infoq.com/presentations/Android-Design/
Исходя из своего личного опыта за последние несколько месяцев, я обнаружил, что лучший способ создания моих приложений - это создание групп фрагментов, которые представляют поток в приложении и представляют все эти фрагменты в одном Activity
. Таким образом, в основном у вас будет такое же количество Activities
в вашем приложении, что и количество потоков. Таким образом, панель действий остается неизменной на всех экранах потоков, но воссоздается при изменении потока, что имеет большой смысл. Как утверждает Эрик Берк, и, как я уже понял, философия использования как можно меньшего числа Activities
не применима для всех ситуаций, потому что она создает беспорядок в том, что он называет "деятельностью Бога".