导航组件 - 淡入特定内容
Navigation Components - Fade in specific content
使用导航组件,我想在过渡期间对 FadeInContent 应用淡入效果,遵循以下顺序:
- Text1 -> Text2 转换(通过在 sharedElement 中应用 R.transition.move 完成)
- FadeInContent 在 1.transition
后淡入
我看过这篇文章,它完全符合我的要求,但没有使用导航组件
https://medium.com/bynder-tech/how-to-use-material-transitions-in-fragment-transactions-5a62b9d0b26b,因此我无法申请 setStartDelay
。我也不能应用 NavOptions.Builder().setEnterAnim(R.anim.fade_in)
,因为它适用于所有屏幕,而不仅仅是 FadeInContent。
据我所知,导航组件只能在过渡期间自行处理运动,因此您正确地指出无法延迟过渡。
尽管如此,您可能希望通过场景转换来实现淡入动画 (https://developer.android.com/training/transitions)。
它看起来像是一种更简洁的方式来处理您所暴露的情况。
代码解:
val transition = TransitionInflater.from(activity)
.inflateTransition(android.R.transition.move)
sharedElementEnterTransition = transition
setEnterSharedElementCallback(object : SharedElementCallback() {
override fun onMapSharedElements(
names: MutableList<String>?,
sharedElements: MutableMap<String, View>?
) {
super.onMapSharedElements(names, sharedElements)
fadeInContainer.loadAnimation(
activity,
R.anim.fade_in
)
}
})
代码解决方案:
val transition = TransitionInflater.from(activity)
.inflateTransition(android.R.transition.move)
sharedElementEnterTransition = transition
setEnterSharedElementCallback(object : SharedElementCallback() {
override fun onMapSharedElements(
names: MutableList<String>?,
sharedElements: MutableMap<String, View>?
) {
super.onMapSharedElements(names, sharedElements)
fadeInContainer.loadAnimation(
activity,
R.anim.fade_in
)
}
})
使用导航组件,我想在过渡期间对 FadeInContent 应用淡入效果,遵循以下顺序:
- Text1 -> Text2 转换(通过在 sharedElement 中应用 R.transition.move 完成)
- FadeInContent 在 1.transition 后淡入
我看过这篇文章,它完全符合我的要求,但没有使用导航组件
https://medium.com/bynder-tech/how-to-use-material-transitions-in-fragment-transactions-5a62b9d0b26b,因此我无法申请 setStartDelay
。我也不能应用 NavOptions.Builder().setEnterAnim(R.anim.fade_in)
,因为它适用于所有屏幕,而不仅仅是 FadeInContent。
据我所知,导航组件只能在过渡期间自行处理运动,因此您正确地指出无法延迟过渡。
尽管如此,您可能希望通过场景转换来实现淡入动画 (https://developer.android.com/training/transitions)。
它看起来像是一种更简洁的方式来处理您所暴露的情况。
代码解:
val transition = TransitionInflater.from(activity)
.inflateTransition(android.R.transition.move)
sharedElementEnterTransition = transition
setEnterSharedElementCallback(object : SharedElementCallback() {
override fun onMapSharedElements(
names: MutableList<String>?,
sharedElements: MutableMap<String, View>?
) {
super.onMapSharedElements(names, sharedElements)
fadeInContainer.loadAnimation(
activity,
R.anim.fade_in
)
}
})
代码解决方案:
val transition = TransitionInflater.from(activity)
.inflateTransition(android.R.transition.move)
sharedElementEnterTransition = transition
setEnterSharedElementCallback(object : SharedElementCallback() {
override fun onMapSharedElements(
names: MutableList<String>?,
sharedElements: MutableMap<String, View>?
) {
super.onMapSharedElements(names, sharedElements)
fadeInContainer.loadAnimation(
activity,
R.anim.fade_in
)
}
})