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

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

朱兴运
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'。

  • 因此,假设您有一个父相对布局,其高度设置为“wrap\u content”。此布局中有另一个默认隐藏的布局。我是这样揭示的: 这是相应的anim文件。它基本上将视图从底部移动到顶部。 我希望父视图会根据子视图的动画改变其高度。但是,当动画开始时,父视图会立即向上移动,而子视图仍在动画中。感觉就像在动画完成之前调用了setVisual。 所以要解决这个问题,我会将孩子的高度从0缩放到100%,但是我