导航组件过渡动画无法正常工作

时间:2019-05-27 01:13:36

标签: android kotlin android-architecture-navigation android-navigation-editor

MainActivity.kt中,我有方法可以更改其Fragment

这是前往SettingActivity.kt

的方法
    override fun startSetting() {
        Timber.d("startSetting()")
        Toast.makeText(activity, "startSetting()", Toast.LENGTH_SHORT).show()
        Navigation.findNavController(mView).navigate(R.id.action_initFragment_to_settingFragment)
    }

这是nav_graph.xml

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    app:startDestination="@id/initFragment">

    <fragment
        android:id="@+id/initFragment"
        android:name="come.example.view.main.fragment.InitFragment"
        android:label="fragment_init"
        tools:layout="@layout/fragment_init">
        <action
            android:id="@+id/action_initFragment_to_settingFragment"
            app:destination="@id/settingFragment"
            app:enterAnim="@anim/enter_from_right"
            app:exitAnim="@anim/none"
            app:popEnterAnim="@anim/none"
            app:popExitAnim="@anim/exit_to_right" />

        <action
            android:id="@+id/action_initFragment_to_webFragment"
            app:destination="@id/webFragment"
            app:enterAnim="@anim/enter_from_right"
            app:exitAnim="@anim/none"
            app:popEnterAnim="@anim/none"
            app:popExitAnim="@anim/exit_to_right" />
        <action ... />
    </fragment>
</navigation>

这是enter_from_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
        android:duration="3000"
        android:fromXDelta="100%"
        android:fromYDelta="0%"
        android:toXDelta="0%"
        android:toYDelta="0%" />
</set>

这里是exit_to_right.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
        android:duration="3000"
        android:fromXDelta="0%"
        android:fromYDelta="0%"
        android:toXDelta="100%"
        android:toYDelta="0%" />
</set>

这是none.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
        android:duration="3000"
        android:fromXDelta="0%"
        android:fromYDelta="0%"
        android:toXDelta="0%"
        android:toYDelta="0%" />
</set>

我第一次使用fragment id中的MainActivity.kt来更改片段。但是,似乎无法正确找到目的地。因此,我使用action id代替它。而且似乎工作。但是,输入/退出工作不正确。但是pop可以正常工作。

当我在导航编辑器中使用默认的none选项时,它仅显示白色屏幕,然后切换到上一个屏幕。当我使用自定义none.xml时,它只是更改而没有任何动画(可能只是闪烁)

那是怎么了?

0 个答案:

没有答案