iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0
自我挑戰組

一天學一篇 Google Codelabs系列 第 29

112/29 - 架構與狀態 - Navigation 最佳做法、Navigation

  • 分享至 

  • xImage
  •  

今天學什麼?

今天閱讀「適用於 Android 開發人員的 Jetpack Compose」第三章「架構與狀態」的「Navigation 最佳做法」、「Navigation

學習筆記

Navigation 最佳做法

  1. 五個最佳做法
    1. 根據輸入狀態和輸出事件來定義螢幕
    2. 像分割畫面一樣拆分導航
    3. 只開放需要的 API
    4. 使用模組來組合
    5. 查看最新的文件

Navigation

  1. Compose Navigation 套件
    dependencies {
        implementation "androidx.navigation:navigation-compose:{latest_version}"
    }
    
  2. 使用rememberNavController()函式即可取得NavController
    val navController = rememberNavController()
    
  3. Navigation 三個主要元件
    1. NavController
    2. NavGraph
    3. NavHost
  4. 導航到指定頁面使用route
    composable(route = Overview.route) {
        Overview.screen()
    }
    composable(route = Accounts.route) {
        Accounts.screen()
    }
    composable(route = Bills.route) {
        Bills.screen()
    }
    
  5. 如果要使用 argument 傳遞參數,要使用"route/{argument}"的格式
    composable (
        route = "${SingleAccount.route}/{${SingleAccount.accountTypeArg}}"
    ) { 
        //...            
    }
    
  6. 如果要使用 argument 接收參數,要定義其arguments
    composable (
        arguments = listOf(navArgument(SingleAccount.accountTypeArg) {
                type = NavType.StringType 
            }
        )
    ) {
        //...
    }
    
  7. 要寫導航的測試,要載入外掛
    dependencies {
        androidTestImplementation "androidx.navigation:navigation-testing:$rootProject.composeNavigationVersion"
    }
    

上一篇
112/28 - 架構與狀態 - 提升狀態的位置、進階狀態和連帶效果
下一篇
112/30 - 架構與狀態 - 狀態容器與狀態產生方式
系列文
一天學一篇 Google Codelabs30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言