我使用底部导航视图与导航组件,当以前选择的菜单项被重新选择片段是重新打开从oncreate
当我打开我的活动文档片段正在加载,当我选择偶数片段并再次重新选择文档片段时,文档片段的先前状态为未加载,而文档片段正在作为新片段加载。
当我再次选择任何片段时,我想加载片段的先前状态。
我不知道如何实现这一点,任何人都有任何想法,我应该如何处理这个问题?
//my activity.kt
navController = findNavController(R.id.fragmentContainerView)
mViewDataBinding?.bottomNavigation?.setupWithNavController(navController)
//my activity.xml
<fragment
android:id="@+id/fragmentContainerView"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="0dp"
app:defaultNavHost="true"
app:navGraph="@navigation/menu_navigation"
app:layout_constraintBottom_toTopOf="@id/bottomNavigation"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottomNavigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:labelVisibilityMode="labeled"
android:background="@color/backgroundColor"
app:itemBackground="@color/backgroundColor"
app:menu="@menu/bottom_navigation_menu"
app:itemIconTint="@color/bottom_nav_item_color"
app:itemTextColor="@color/bottom_nav_item_color"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
//navigation file
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/menu_navigation"
app:startDestination="@id/documentsFragment">
<fragment
android:id="@+id/documentsFragment"
android:name="packagename.DocumentsFragment"
android:label="DocumentsFragment" />
<fragment
android:id="@+id/eventsFragment"
android:name="packagename.EventsFragment"
android:label="EventsFragment" />
<fragment
android:id="@+id/notesFragment"
android:name="packagename.NotesFragment"
android:label="NotesFragment" />
<fragment
android:id="@+id/tasksFragment"
android:name="packagename.TasksFragment"
android:label="TasksFragment" />
<fragment
android:id="@+id/menuFragment"
android:name="packagename.MenuFragment"
android:label="MenuFragment" />
</navigation>
我想要的是加载用户之前离开的片段(状态)。
2条答案
按热度按时间fbcarpbf1#
BottomNavigation
中重新选择片段时,没有办法重新打开它elcex8rz2#
导航组件支持多个backstack。在您的情况下,
1.你必须把你的家片段作为一个起始目的地
1.添加一个项目单击监听器并使用navController设置它,如下所示。
监听器