ANDROID 八月 26, 2022

Android • Jetpack • Navigation

文章字数 1.1k 阅读约需 2 mins. 阅读次数 0

引言

本篇将介绍我最近在对 Android 项目进行开发时,有关 Navigation 方面的笔记分享。

Google Android Developer 中对 Navigation 的介绍:

Navigation refers to the interactions that allow users to navigate across, into, and back out from the different pieces of content within your app. Android Jetpack’s Navigation component helps you implement navigation, from simple button clicks to more complex patterns, such as app bars and the navigation drawer. The Navigation component also ensures a consistent and predictable user experience by adhering to an established set of principles.


Splash Screen finish()

假设有如下使用场景:

  1. 项目仅可使用 Android 原生组件 或 Jetpack 组件库,不可使用第三方库或插件;

  2. 当用户首次安装应用时,优先弹出引导页(Splash Screen),提示用户需要对 App 相应权限进行授权;当用户授权相应权限后 2s 进入主页;此后若用户手动在设置取消授权,则需再次展示该权限申请页;

  3. 当用户首次打开应用时,优先弹出欢迎页(对引导 Splash Screen 进行修改即可),并在 2s 后进入主页;

  4. 引导页与欢迎页均需要在展示后进行销毁(启动新页面并关闭当前页面),类似 Activity 的 finish() 方法。


假定有欢迎页A,主页B,则相应操作与配置如下:

  1. 在 nav.xml 文件中,添加 欢迎页A -> 主页B 的跳转路径;

  2. 对跳转路径进行设置,代码如下(主要修改点位于 popUpTo 与 popUpToInclusive 两个属性):

<fragment android:id="@+id/A"
          android:name="com.xx.A"
          android:label="A">
    <action
        android:id="@+id/action_A_to_B"
        app:destination="@id/B"
        app:popUpTo="@id/A"
        app:popUpToInclusive="true"/>
</fragment>

0%