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裡配置:

val host: NavHostFragment = supportFragmentManager 。findFragmentById(R。id。my_nav_host_fragment) as NavHostFragment? ?: return val navController = host。navController val bottomNav = findViewById(R。id。bottom_nav_view) bottomNav?。setupWithNavController(navController)

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

<!——todo destination隱式跳轉到Fragement id=flow_step_one_dest ——>

專案地址:https://github.com/Visen123/MyNavigation