动画交易期间,退出的片段会立即消失

时间:2019-07-04 19:42:09

标签: android android-fragments kotlin

我见过很多人用子片段(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"/>

1 个答案:

答案 0 :(得分:0)

使用TranslateAnimationdocs)代替{{1}}。