android - 使用 TransitionSet 与 android 导航库进行进入/退出转换
问题描述
我想TransitionSet
与 Android Navigation Library 结合使用,以存档比在导航图中findNavController().navigate(action)
使用更复杂的动画app:enterAnim
为了存档这个我试图覆盖片段的 onCreate 中的进入和退出转换
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enterTransition = getEnterTransitionSet()
exitTransition = getExitTransitionSet()
allowEnterTransitionOverlap = false
}
private fun getEnterTransitionSet(): TransitionSet {
return TransitionSet()
.addTransition(Fade(Fade.MODE_IN)
.addTarget(R.id.button)
.setDuration(TRANSITION_DURATION)
)
.addTransition(Slide(Gravity.BOTTOM)
.addTarget(R.id.text)
.setDuration(TRANSITION_DURATION)
).setOrdering(ORDERING_TOGETHER)
}
private fun getExitTransitionSet(): TransitionSet {
return TransitionSet()
.addTransition(Fade(Fade.MODE_OUT)
.addTarget(R.id.buttom)
.setDuration(TRANSITION_DURATION)
)
.addTransition(Slide(Gravity.TOP)
.addTarget(R.id.text)
.setDuration(TRANSITION_DURATION)
).setOrdering(ORDERING_TOGETHER)
}
文本应该从底部滑入并滑出到顶部,而按钮应该淡入或淡出。
为了测试这一点,我创建了一个循环并在单击按钮时再次导航到同一个片段,但是输入动画永远不会执行,并且新片段在旧片段之上膨胀。之后执行旧片段的退出转换。
我的期望是类似于app:enterAnim
and的行为app:exitAnim
。并在前一个片段的退出过渡之后执行新片段的进入过渡。我错过了什么或者这不可能吗?
解决方案
推荐阅读
- python - 向表格添加数字,但不是从第 1 行第 1 行开始
- database - YugaByte DB 中是否有 YCQL JSONB 类型的 Javascript 驱动程序支持?
- sap - 查找两个日期列之间的平均值 (SAP Business Objects)
- c# - 如何捕获 401 未经授权的错误并路由到新视图
- powerbi - DAX SWITCH 根据另一列和切片器值更改值
- python - 从数据框中删除有问题的值位于单独列表中的行
- ruby-on-rails - 部署到 Heroku 的 Uglifier 标点符号问题
- python - 熊猫如何选择一行具有最大值的列?
- ansible - ansible无法识别yq处理器
- regex - 猪匹配不匹配的数字