我见过很多人用子片段(for example)描述这种情况,但是我没有使用子片段。当我将动画添加到事务中时,退出的片段会立即消失,而进入的片段会以预期的进入动画进入。当我按回去时,同样的事情发生了……退出的片段立即消失,原始片段以适当的弹出输入动画进入。
我做错了什么?
我正在实现AppCompatActivity
的{{1}}中进行此操作,我在活动中的布局仅包含一个FrameLayout。
PreferenceFragmentCompat.OnPreferenceStartFragmentCallback
我所有的动画都是具有相同持续时间的简单平移动画,如下所示:
override fun onPreferenceStartFragment(caller: PreferenceFragmentCompat, pref: Preference): Boolean {
val fragment = supportFragmentManager.fragmentFactory.instantiate(
classLoader,
pref.fragment)
supportFragmentManager.beginTransaction()
.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left, R.anim.slide_in_left, R.anim.slide_out_right)
.add(R.id.fragment_wrapper, fragment)
.addToBackStack(null)
.commit()
return true
}
我正在使用<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:fromXDelta="100%p" android:toXDelta="0"
android:duration="@integer/fragment_transition_time"/>
。