файл моего проекта: https://drive.google.com/file/d/11llz7ylWe7ACyLMBbqp6YzugUL8hhImt/view?usp=sharing
, поэтому у меня 2 навигационных графика.называется основной навигационный граф, а также аутентификационный граф.
Я включаю основной граф в аутентификационный график и наоборот, аутентификационный граф в основной граф.
Я хочу реализовать систему входа в систему, поэтому, когда пользователь успешнопосле входа в систему пользователь перейдет к основному действию (которое имеет нижнюю навигационную панель и панель инструментов), у авторизационной деятельности нет нижней навигационной панели или фрагмента.вот графики
- основной навигационный график:
<?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"
android:id="@+id/navigation_graph"
app:startDestination="@id/destination_home">
<include app:graph="@navigation/auth_graph" />
<fragment android:id="@+id/destination_home" android:name="com.muchammadagunglaksana.navcontroller.HomeFragment"
android:label="Home Judul" tools:layout="@layout/fragment_home">
<action android:id="@+id/action_toAuthActivity" app:destination="@id/auth_graph"/>
</fragment>
<fragment android:id="@+id/destination_camera" android:name="com.muchammadagunglaksana.navcontroller.CameraFragment"
android:label="Camera Judul" tools:layout="@layout/fragment_camera">
<action android:id="@+id/toPhotosDestination" app:destination="@id/destination_photos"/>
</fragment>
<fragment android:id="@+id/destination_photos" android:name="com.muchammadagunglaksana.navcontroller.PhotosFragment"
android:label="Foto Judul" tools:layout="@layout/fragment_photos">
<action android:id="@+id/toHomeDestination" app:destination="@id/destination_home"/>
<argument android:name="numberOfPhotos" app:argType="integer" android:defaultValue="0"/>
</fragment>
<fragment android:id="@+id/destination_settings"
android:name="com.muchammadagunglaksana.navcontroller.SettingsFragment"
android:label="Setting Judul" tools:layout="@layout/fragment_settings"/>
</navigation>
График аутентификации:
<include app:graph="@navigation/navigation_graph" />
<fragment android:id="@+id/loginFragment" android:name="com.muchammadagunglaksana.navcontroller.LoginFragment"
android:label="fragment_login" tools:layout="@layout/fragment_login">
<action android:id="@+id/action_toMainActivity" app:destination="@id/navigation_graph"/>
</fragment>
при нажатии кнопки входа в системуLoginFragment затем я использую код ниже:
login_button.setOnClickListener {
Navigation.findNavController(it).navigate(R.id.action_toMainActivity)
}
, а также в HomeFragment, когда кнопка выхода из системы нажала, я использую:
logout_button.setOnClickListener {
Navigation.findNavController(it).navigate(R.id.action_toAuthActivity)
}
, но я получил stackoverflowerror:
E / AndroidRuntime: ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: основной процесс: com.muchammadagunglaksana.navcontroller, PID: 14322 java.lang.StackOverflowError: размер стека 8 МБ в android.support.v4.util.SparseArrayCompatCompatCatat ((77) в android.support.v4.util.SparseArrayCompat. (SparseArrayCompat.java:62) в androidx.navigation.NavGraph. (NavGraph.java:44) в androidx.navigation.NavGraphNavigator.createDestination (NavGraphNavigator)androidx.navigation.NavGraphNavigator.createDestination (NavGraphNavigator.java:29) в androidx.navigation.NavInflater.inflate (NavInflater.java:100) в androidx.navigation.NavInflater.inflate (NavInflater.javaxnigatig andigavig at80)n.NavInflater.inflate (NavInflater.java:128) в androidx.navigation.NavInflater.inflate (NavInflater.java:80) в androidx.navigation.NavInflater.inflate (NavInflater.java:128) в androidx.navigation.NfInflater(NavInflater.java:80) в androidx.navigation.NavInflater.inflate (NavInflater.java:128) в androidx.navigation.NavInflater.inflate (NavInflater.java:80) в androidx.navigation.NavInflater.inflate (NavInflater.j:128) на androidx.navigation.NavInflater.inflate (NavInflater.java:80) на androidx.navigation.NavInflater.inflate (NavInflater.java:128)
na.navcontroller E / JavaBinder: !!!СБОЙ СДЕЛКИ БИНДЕРА !!!
что пошло не так?