В 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
вместо него. И похоже работа. Однако вход / выход работает некорректно. Но поп работает отлично.
Когда я использовал параметр по умолчанию none
в Редакторе навигации, он просто показывает белый экран и затем переключается на более поздний экран. И когда я использовал свой пользовательский none.xml
Он просто меняется без какой-либо анимации (может быть, просто мигает)
Что с этим не так?