Android导航组件:PopEnterAnim不工作



在片段中导航时,除了popenteranim之外,所有动画都能正常工作,这根本不起作用,原因也不明显。例如,LoginFragment到Register1AccountFragment(都在同一个活动中(:

导航图:

<action
android:id="@+id/action_loginFragment_to_register1AccountFragment"
app:destination="@id/nav_register"
app:enterAnim="@anim/slide_in_from_right"
app:exitAnim="@anim/slide_out_to_left"
app:popEnterAnim="@anim/slide_in_from_left"
app:popExitAnim="@anim/slide_out_to_right" />

请注意,目的地是一个新的导航图,其中startDestination是register1AccountFragment。我这样做只是为了从导航的其余部分中分离寄存器片段,并且应用程序中只有一个活动。

登录碎片

registerButton.setOnClickListener(v -> {
view.clearFocus();
NavDirections action = LoginFragmentDirections.actionLoginFragmentToRegister1AccountFragment();
Navigation.findNavController(v).navigate(action);
});

动画/幻灯片_从左进入

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXDelta="-100%" android:toXDelta="0%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="300" />

因此,所有其他动画都可以工作,包括popExitAnim,它与slide_in_from_left正好相反,即

anim/slide_out_to_right

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXDelta="0%" android:toXDelta="100%"
android:fromYDelta="0%" android:toYDelta="0%"
android:duration="300" />

这在所有碎片上都是一样的,无论它们的popEnterAnim如何。我也尝试过多种不同的动画,比如popEnterAnim=从0 alpha渐变为1 alpha。

我还尝试过使用动作的ID进行导航,而不是NavDirections,它仍然不会显示动画;

登录碎片

registerButton.setOnClickListener(v -> {
view.clearFocus();
Navigation.findNavController(v).navigate(R.id.action_loginFragment_to_register1AccountFragment);
});

显然在androidx.fragment:frage-ktx:11.3.2中有一个错误,导致一些动画停止工作如果您有该依赖项,请将其更改为1.3.1版本。该错误已报告,并将在1.3.3版中修复

我在Kotlin面临着完全相同的问题。

所有动画都有效,但只有PopEnterAnim无效

我的动漫文件是完全正确的。我的导航依赖项是:

实现‘androidx.navigation:导航片段ktx:2.3.5’

实现'androidx.navigation:navigation-ui-ktx:2.3.5'

我没有依赖项androidx.fragment:fragment ktx

我正在使用安全Args来访问导航操作。没有问题。

相关内容

  • 没有找到相关文章

最新更新