and*_*ser 5 android navigation-drawer android-navigation android-architecture-navigation
我正在尝试在我的项目中使用导航组件实现 NavigationDrawer。我有一个 MainActivity 作为入口点和多个片段目的地。我已将我的抽屉菜单项链接到我的 nav_graph.xml 中的目的地,一切正常。
我的 NavigationDrawer 中有一个“注销”菜单项选项,单击它我将启动 LoginActivity。我的问题是
这是我的 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"
android:id="@+id/nav_graph"
app:startDestination="@id/dashboardFragment">
<fragment
android:id="@+id/dashboardFragment"
android:name="com.example.fragment.DashboardFragment"
android:label="DashboardFragment"
tools:layout="@layout/fragment_dashboard" />
<fragment
android:id="@+id/profileFragment"
android:name="com.example.fragment.ProfileFragment"
android:label="ProfileFragment"
tools:layout="@layout/fragment_profile" />
<fragment
android:id="@+id/settingsFragment"
android:name="com.example.fragment.SettingsFragment"
android:label="SettingsFragment"
tools:layout="@layout/fragment_sale_edit" />
<activity
android:id="@+id/loginActivity"
android:name="com.example.activity.LogoutActivity"
android:label="LogoutActivity"></activity>
</navigation>
Run Code Online (Sandbox Code Playgroud)
这是我的 drawer_menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="navigationView">
<group android:checkableBehavior="single">
<item
android:id="@+id/dashboardFragment"
android:icon="@drawable/ic_menu_camera"
android:title="Dashboard" />
<item
android:id="@+id/profileFragment"
android:icon="@drawable/ic_menu_gallery"
android:title="Profile" />
<item
android:id="@+id/settingsFragment"
android:icon="@drawable/ic_menu_slideshow"
android:title="Sale Edits" />
<item
android:id="@+id/loginActivity"
android:icon="@drawable/ic_menu_manage"
android:title="Logout" />
</group>
</menu>
<fragment
android:id="@+id/navHostFragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/nav_graph"/>
Run Code Online (Sandbox Code Playgroud)
回答您的问题:
我将 LoginActivity 添加到我的 nav_graph 并将其链接到抽屉中的注销菜单项,这是正确的方法吗?
是的,这就是您应该如何为新活动提供午餐,但您想要的与常规活动略有不同。
为了实现你想要的,你必须使用登录活动启动你的应用程序(使它成为你的启动器活动),这个活动将检查用户的会话(有启动屏幕或加载屏幕),如果会话存在,它会启动你的应用程序。主要活动,如果不是,用户必须登录,然后您就可以进行主要活动。
要使用导航组件执行此操作,您需要为登录活动创建一个新的导航图,并在其中包含主要活动链接。
通过此设置,您应该在新任务中完成主要活动,然后完成登录活动,这样返回主要活动将关闭应用程序并从登录活动返回。
如果这个答案不清楚,请告诉我,我可以解释更多。
| 归档时间: |
|
| 查看次数: |
3043 次 |
| 最近记录: |