如何使用带有BottomNavigationView的导航(Jetpack)构建登录模块

问题描述 投票:0回答:1

我想实现这样的功能:

当我登录时,用“Tab:Me”Logged In Fragment显示这个片段

当我必须登录时,用“Tab:Me”Not Logged In Fragment显示这个片段

现在我在导航图(JetPack)中使用BottomNavigationView加载片段,但我不知道如何通过一个“标签”加载不同的片段

android android-fragments bottomnavigationview android-jetpack android-architecture-navigation
1个回答
0
投票

我有答案!!!

第一步:添加项目在我的BottomNavigationView的菜单中像这样:(添加authorizationFragment)

//bottom_navigation_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/indexFragment"
        android:icon="@drawable/bottom_home"
        android:title="@string/index_act_string1" />

    <item
        android:id="@+id/sellingFragment"
        android:icon="@drawable/bottom_selling"
        android:title="@string/index_act_string2" />

    <item
        android:id="@+id/exploreFragment"
        android:icon="@drawable/bottom_news"
        android:title="@string/index_act_string3" />

    <item
        android:id="@+id/meFragment"
        android:icon="@drawable/bottom_me"
        android:title="@string/index_act_string4" />

    <item
        android:id="@+id/authorizationFragment"
        android:icon="@drawable/bottom_me"
        android:title="@string/index_act_string4" />
</menu>

第二步:创建一个新的片段“AuthorizationFragment”并在我的导航图中添加此片段,并设置AuthorizationFragment的目标ID,如“authorizationFragment”

第三步:在我的MainActivity主机导航图中,使用如下代码:

if(loginStatus == true){
    bottomNavigationView.menu.menu.findItem(R.id.authorizationFragment).isVisible = true
    bottomNavigationView.menu.findItem(R.id.meFragment).isVisible = false
}else{
    bottomNavigationView.menu.menu.findItem(R.id.authorizationFragment).isVisible = false
    bottomNavigationView.menu.findItem(R.id.meFragment).isVisible = true
}

它工作得很好!!!

© www.soinside.com 2019 - 2024. All rights reserved.