У меня возникли проблемы с пониманием разницы между этими двумя флагами Window
и я не уверен на 100%, когда каждый из них нужно использовать и почему.
Документы для Window.FEATURE_ACTIVITY_TRANSITIONS
говорят:
Включает действия для запуска Activity Transitions либо путем отправки или получения пакета ActivityOptions, созданного с помощью
makeSceneTransitionAnimation(Activity, Pair[])
илиmakeSceneTransitionAnimation(Activity, View, String)
.
И документы для Window.FEATURE_CONTENT_TRANSITIONS
говорят:
Флаг для запроса изменения содержимого окна должен быть анимированным с помощью
TransitionManager
.
TransitionManager
устанавливается с помощьюsetTransitionManager(TransitionManager)
. Если ни один не установлен, будет использоваться значение по умолчаниюTransitionManager
.
В документации указано, что следующие методы Window
требуют включения флага FEATURE_ACTIVITY_TRANSITIONS
, но не говорят о том, нужно ли FEATURE_CONTENT_TRANSITIONS
(обратите внимание, что в соответствии с исходным кодом FEATURE_ACTIVITY_TRANSITIONS
- true
и FEATURE_CONTENT_TRANSITIONS
- false
для приложений с тематическими материалами по умолчанию)
-
get{Enter,Exit,Return,Reenter}Transition()
-
set{Enter,Exit,Return,Reenter}Transition()
-
getSharedElement{Enter,Exit,Return,Reenter}Transition()
-
setSharedElement{Enter,Exit,Return,Reenter}Transition()
-
getTransitionBackgroundFadeDuration()
-
setTransitionBackgroundFadeDuration()
Другими словами, похоже, что на основе этой информации FEATURE_ACTIVITY_TRANSITIONS
является флагом функции, которую приложениям необходимо будет разрешить, чтобы использовать новые API перехода Lollipop. Что меня смущает, так это то, что эта статья с сайта разработчиков Android заявляет, что включение FEATURE_CONTENT_TRANSITIONS
требуется для реализации пользовательских переходов активности.
Итак, вот мои вопросы:
- В чем разница между этими двумя флагами? В чем разница между "переходом активности" и "контентом контента" в этом контексте?
- Почему
FEATURE_ACTIVITY_TRANSITIONS
включен иFEATURE_CONTENT_TRANSITIONS
отключен по умолчанию? Когда флажокFEATURE_CONTENT_TRANSITIONS
действительно нужен? - Было бы целесообразно отключить
FEATURE_ACTIVITY_TRANSITIONS
и включитьFEATURE_CONTENT_TRANSITIONS
? ИлиFEATURE_CONTENT_TRANSITIONS
требует, чтобыFEATURE_ACTIVITY_TRANSITIONS
также был включен?
Спасибо!