我有MainActivity作为导航控制器的主机,它有工具栏和底部导航视图
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:theme="?attr/actionBarTheme"
android:minHeight="?attr/actionBarSize"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<fragment
android:id="@+id/nav_host_fragment"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@+id/bottom_nav"
app:layout_constraintTop_toBottomOf="@+id/toolbar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:name="androidx.navigation.fragment.NavHostFragment"
app:navGraph="@navigation/navigation_graph"
app:defaultNavHost="true"
/>
<android.support.design.widget.BottomNavigationView
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:background="@color/colorPrimary"
app:itemIconTint="@color/color_bottom_view_navigation"
app:itemTextColor="@color/color_bottom_view_navigation"
app:menu="@menu/menu_bottom_view"
app:labelVisibilityMode="labeled"
android:id="@+id/bottom_nav"/>
</android.support.constraint.ConstraintLayout>
HomeFragment
,
OrderFragment
,
FavouriteFragment
,
CartFragment
ProfileFragment
.
这样地:
家庭片段
,如果单击它,则它将移动到登录屏幕。通常,登录屏幕或注册屏幕没有底部导航视图,也没有工具栏。
我试着用
<Include>
所以我制作了两个导航图,然后制作了两个活动来放置片段作为宿主。第一个活动有底部导航视图和工具栏(MainActivity,如我在上面共享的xml),而另一个活动没有底部导航视图和工具栏
导航图如下图所示:
作为nav宿主片段的MainActivity
AuthActivity作为nav宿主片段
但是当我离开
家庭片段
(有注销按钮)到
LoginFragment
使用此代码:
logout_button.setOnClickListener {
Navigation.findNavController(it).navigate(R.id.action_toAuthActivity)
}
但在登录屏幕中,底部的导航视图和工具栏仍然存在
但是…我不能用这种方法删除底部导航视图和工具栏
那么,如果使用导航控制器,如何删除一些片段中的底部导航视图和工具栏呢?