Ale*_*ood 43 android activity-transition shared-element-transition
我在理解这两个Window标志之间的区别时遇到了一些麻烦,并且在每个标志需要使用时都不是100%肯定的.
文档Window.FEATURE_ACTIVITY_TRANSITIONS说:
允许活动通过发送或接收使用
makeSceneTransitionAnimation(Activity, Pair[])或创建的ActivityOptions包来运行活动转换makeSceneTransitionAnimation(Activity, View, String).
而文档Window.FEATURE_CONTENT_TRANSITIONS说:
用于请求窗口内容更改的标志应使用a进行动画处理
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是应用程序需要启用的功能标志,以便使用Lollipop的新活动转换API.然而,令我困惑的是,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启用?谢谢!
Geo*_*unt 44
我很高兴我有机会回答这些问题,因为文件不太清楚.
早期,有一个标志FEATURE_CONTENT_TRANSITIONS处理这两个功能.当Material应用程序在启用时出现意外行为时,我们将它们拆分.因此,一些较旧的文档可能仍然表示您必须启用FEATURE_CONTENT_TRANSITIONS它们意味着进行活动转换FEATURE_ACTIVITY_TRANSITIONS.
- 这两面旗帜有什么区别?在这种情况下,"活动过渡"和"内容过渡"之间有什么区别?
此上下文中的活动转换意味着您startActivity使用从中创建的包调用,ActivityOptions.makeSceneTransitionAnimation或者您的活动是使用该包启动的.Activity Transitions修改你的布局(例如,元素淡入,移动共享元素),所以如果你的活动不喜欢,你应该禁用FEATURE_ACTIVITY_TRANSITIONS.
内容转换使用TransitionManager您拨打时setContentView(第一次除外).通常,您将获得交叉淡入淡出,但如果您的Activity的内容有共同点,例如共享ID或使用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.如果您希望明确限制人们使用共享元素调用您的活动,或者您不喜欢标准输入过渡效果,则可以禁用它以防止其他应用程序调用您的活动时产生效果.
| 归档时间: |
|
| 查看次数: |
6571 次 |
| 最近记录: |