当前位置: 首页 > 知识库问答 >
问题:

在动画事务期间,退出片段立即消失

朱兴运
2023-03-14

我见过很多人用子片段描述这种情况(例如),但我没有使用子片段。当我向事务添加动画时,退出的片段会立即消失,而进入的片段会以预期的enter动画进入。当我按下后,同样的事情发生了。。。退出的片段立即消失,原始片段以适当的弹出式输入动画进入。

我做错了什么?

我在一个实现PreferenceFragmentCompat的AppCompatActivity中这样做。在PreferenceStartFragmentCallback上,我的活动布局仅由一个FrameLayout组成。

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"/>

我正在使用androidx。首选项:1.1.0-alpha05。

共有1个答案

易成天
2023-03-14

使用ObjectAnimator(文档)而不是TranslateAnimation

 类似资料:
  • 这是一个场景:活动包含片段,它反过来使用在其中添加片段和像这样: 到目前为止,一切正常。 然后我们在活动中运行以下事务: 在转换过程中,片段B的enter动画运行正常,但片段A1和A2完全消失。当我们使用后退按钮还原事务时,它们会正确初始化,并在弹出键动画期间正常显示。 在我的简短测试中,情况变得更奇怪了——如果我为子片段设置动画(见下文),当我们添加片段时,退出动画会断断续续地运行 我想要实现的

  • 我查看了一些教程,了解片段之间的动画事务。我用这种方法制作动画,效果很好: 但是我想反转这个动画:旧片段滑出到左边,新片段滑入到右边,但是文件的值似乎对我的作用域没有用处。 我怎么能做到呢?

  • 我遇到这个问题已经有一段时间了,但没有找到解决方案。我正在rails中构建一个论坛应用程序。我刚刚完成将bootstrap和bootstrap gem添加到我的项目中。我去运行服务器,它以一个巨大的错误退出。在这里。

  • 容器总是在创建和运行后立即退出。 我尝试使用命令运行mssql实例 当尝试类似的SO link link时 它显示 但在run命令中我已经设置了'accept_eula=y'。

  • 此时,Frag2在堆栈上,是唯一可见的片段。我使用了replace和addToBackStack,因为我需要后退导航。我的问题是,当我在Frag2内旋转屏幕时,活动中的super.oncreate(savedInstanceState)方法调用frag1的构造函数。 在用户按下后退按钮之前,有没有什么方法可以避免调用Frag1的构造函数?