Ответ 1
Я рад, что у меня есть возможность ответить на эти вопросы, поскольку документация менее ясна.
Раньше был один флаг FEATURE_CONTENT_TRANSITIONS
, который обрабатывал обе функции. Мы разделили их, когда приложения Material получили неожиданное поведение, когда оно было включено. Поэтому некоторые старые документы могут по-прежнему утверждать, что вы должны включить FEATURE_CONTENT_TRANSITIONS
для получения переходов активности, когда они означают FEATURE_ACTIVITY_TRANSITIONS
.
- В чем разница между этими двумя флагами? Что это разница между "переходом активности" и "содержанием" переход "в этом контексте?
Переход активности в этом контексте означает, что вы вызываете startActivity
с помощью пакета, созданного из ActivityOptions.makeSceneTransitionAnimation
, или ваша деятельность была запущена с этим пакетом. Переходы активности изменяют ваш макет (например, затухание в элементах, перемещение общих элементов), поэтому, если ваша активность не нравится, вы должны отключить FEATURE_ACTIVITY_TRANSITIONS
.
Переходы содержимого используют TransitionManager
, когда вы вызываете setContentView
(кроме первого раза). Как правило, вы получите перекрестное затухание, но если ваш контент Activity имеет общие черты, такие как совместное использование идентификаторов или использование transitionName
, вы получите поведение ChangeBounds
между этими представлениями. Вы можете изменить детали своих переходов, настроив TransitionManager
, связанные с вашим окном, либо с помощью XML или кода.
- Почему
FEATURE_ACTIVITY_TRANSITIONS
включен иFEATURE_CONTENT_TRANSITIONS
отключен по умолчанию? Когда действительно ли нужен флагFEATURE_CONTENT_TRANSITIONS
?
FEATURE_CONTENT_TRANSITIONS
использует TransitionManager, когда изменяется ваш контент. По умолчанию это перекрестное затухание, и это было очень плохо для некоторых приложений. С другой стороны, FEATURE_ACTIVITY_TRANSITIONS
по умолчанию ничего не делает для большинства приложений. Вы должны сделать так, чтобы активировать эту деятельность, поэтому безопасно включать.
- Будет ли смысл иметь смысл отключить
FEATURE_ACTIVITY_TRANSITIONS
и включитьFEATURE_CONTENT_TRANSITIONS
? Или требуетсяFEATURE_CONTENT_TRANSITIONS
FEATURE_ACTIVITY_TRANSITIONS
также будет включен?
Да, но маловероятно. Если вашему приложению нравится FEATURE_CONTENT_TRANSITIONS
, он должен хорошо работать с FEATURE_ACTIVITY_TRANSITIONS
. Если вы хотите явно запретить людям вызывать свою активность с помощью общих элементов или вам не нравится, как стандартный эффект перехода введите, вы можете отключить его, чтобы предотвратить эффект, когда другие приложения звонят вам.