我有一个回收站视图->详细信息视图流程。过渡名称在列表中是唯一的,并且与详细信息片段中的过渡名称匹配。应该移动两个视图,而不是像其他所有东西一样淡入/淡出。在将目标API更改为26之前,我的动画一直正常工作。在API 26上,共享视图跳至其“结束”状态而没有任何动画。其他所有内容都是动画属性。
我尝试遵循一些指南都没有用。我想念什么?这是我的代码:
private fun showDetails(edited: EditedAlarm) {
fragmentManager.findFragmentById(R.id.main_fragment_container)?.lollipop {
exitTransition = Fade()
}
val detailsFragment = AlarmDetailsFragment().apply {
arguments = Bundle()
arguments.putInt(Intents.EXTRA_ID, edited.id())
arguments.putBoolean(Store.IS_NEW_ALARM, edited.isNew)
}.lollipop {
val enterSlide = Slide()
if (edited.holder.isPresent()) {
val viewHolder = edited.holder.get()
enterSlide.epicenterCallback = viewHolder.epicenter()
enterSlide.slideEdge = Gravity.TOP
}
enterTransition = TransitionSet().addTransition(enterSlide).addTransition(Fade())
val move = TransitionInflater.from(this@AlarmsListActivity).inflateTransition(android.R.transition.move)
sharedElementEnterTransition = move
sharedElementReturnTransition = move
}
fragmentManager.beginTransaction()
.lollipop {
val viewHolder = edited.holder.get()
addSharedElement(viewHolder.digitalClock(), viewHolder.digitalClock.transitionName)
addSharedElement(viewHolder.container(), viewHolder.container().transitionName)
}
.replace(R.id.main_fragment_container, detailsFragment)
.commitAllowingStateLoss()
}
答案 0 :(得分:0)
经过一番挖掘,我找到了解决方法:
使用支持库中的SupportFragmentManager。即使在API版本26中未弃用片段,它们也并非始终有效。