В документации на Android говорится: "Активность - это единственная, целенаправленная вещь, которую пользователь может сделать".
Однако с помощью фрагментов мы сможем сделать много "вещей" в рамках одного действия, поскольку предлагает Reto Meier. Его предложение состоит в том, чтобы заменить фрагмент фрагмента фрагментом контента в рамках одной и той же Деятельности (раздел "Внутри нашего кода это создает дилемму" ).
Допустим, что мое приложение является "бит" более сложным, со многими видами деятельности, со сложным деревом навигации и спроектировано с учетом принципа "единственного, сфокусированного, что пользователь может делать".
Давайте теперь скажем, что мне нужно адаптировать его к фрагментам и большим экранам... и что я не хочу создавать второе приложение, а также не имеет двух совершенно разных логик (один для других телефонов для таблиц) внутри одного приложения.
Должен ли я иметь одно действие для управления всеми фрагментами приложения и транзакциями фрагментов? Как и Ретро Мейер, предположим выше. Это рекомендуемый путь? Таким образом, разрыв с принципом "единого, целенаправленного, что пользователь может сделать" для деятельности?
Или я что-то упускаю? Надеюсь;)
Кстати, я думаю, что Фрагменты выглядят великолепно, но из того, что я видел до сих пор, только если вы создаете приложение с нуля. Поскольку приложения, совместимые с телефоном и планшетами, выглядят немного утомительно. Надеюсь, что ошибаюсь:)
Диана Хакборн уже ответила (спасибо для ссылки mgv):
вы могли бы поместить все ваше приложение в одно действие, в котором вы измените структуру фрагмента при изменении состояния
Итак, Activity становится своего рода контейнером, где вы сможете подключать Fragments. Мне нравится этот подход, но... в моем приложении доступно около 30 различных операций, каждый из которых требует от 2 до 4 экранов, которые должны выполняться (формы и списки выбора), все они отличаются и существуют ограничения на навигацию. Он отлично работает с действиями, каждый из которых управляет одним действием на экране/шаге.
Итак, чтобы портировать фрагменты, я должен переместить каждую экранную логику в Фрагменты и использовать операции как контейнеры для каждой операции. Таким образом, оставляя Деятельность как управляющую навигацию между Фрагментами для каждой операции, правильно? Похоже, будет боль, чтобы адаптировать длинные приложения.: (
Текущее определение активности должно немного изменить бит.:)