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佈局裡配置:
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
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傳遞引數值
<?xml version=“1。0” encoding=“utf-8”?>
專案地址:https://github.com/Visen123/MyNavigation