天天看點

Android Jetpack架構元件Navigation管理Fragment架構

Android官方推薦架構元件Navigation 讓單 Activity 應用成為首選架構,更好的管理Fragment架構

Navigation目前僅AndroidStudio 3.2以上版本支援,如果您的版本不足3.2, 下載下傳AndroidStudio3.2以上版本。

官網下載下傳位址:https://developer.android.google.cn/studio/

快速開發, 元件可單獨使用,也可以同時工作。 消除樣闆 ,讓代碼Android 架構Jetpack管理乏味的活動事件,比如背景任務、導航和生命周期管理。這樣你可以專注于讓你的app更棒的東西,建構高品質、健壯的app 基于現代設計實踐,Android Jetpack元件可以減少崩潰和記憶體洩漏,且向後相容。接下來講述Navigation的使用以及如何管理多個Fragment等

項目builde.gradle檔案需配置:

implementation "androidx.navigation:navigation-fragment-ktx:2.3.0-alpha05"

implementation "androidx.navigation:navigation-ui-ktx:2.3.0-alpha05"

1.建立MainActivity和布局檔案activity_navigation布局裡配置:

Android Jetpack架構元件Navigation管理Fragment架構

activity_navigation.xml布局配置:

MainActivity裡配置:

2、建立HomeFragment、FlowStepFragment、FlowStepFragment、SettingsFragment、DeepLinkFragment在Fragment片段裡跳片段方法

方法1: view.findViewById(R.id.navigate_destination_button).setOnClickListener( Navigation.createNavigateOnClickListener(R.id.next_action) )

方法2: view.findViewById(R.id.navigate_destination_button)?.setOnClickListener { findNavController().navigate(R.id.flow_step_one_dest, null, null) }

3、在res裡建立檔案夾navigation 類型選擇Navigation,然後在這個檔案夾裡建立mobile_navigation.xml

在mobile_navigation.xml裡寫入要跳轉的各個片段Fragment及要傳遞的參數: startDestination預設第一個跳的片段id

destination跳到另外一個片段id

action 隐式跳轉 ,argType傳遞參數類型,defaultValue傳遞參數值

Android Jetpack架構元件Navigation管理Fragment架構
Android Jetpack架構元件Navigation管理Fragment架構

<?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"

app:startDestination="@+id/home_dest">

</navigation>

繼續閱讀