KC Blog

Android 用Jektpack Compose 來開發app【03】 - Compose導航篇

3 min read
UIFramework#Android#Kotlin
前言
* 這是這個系列的第三篇

因爲有機會開發整個專案全用Compose來完成的經驗

所以經過一番摸索後

有些心得

決定把這個過程寫成筆記分享給大家

初期建置
* 使用的library如下:
{% include table/compose-use.html %} {% include table/compose-category.html %}
實作Navigation for Compose
* 這邊預計使用一個Main activity去導航、跳轉到其他畫面

所以今天我們要來實作 Compose中的NavHost

step1. 建立各個畫面的enum
* 首先先定義一個enum

裡面會放你預期會需要導航的內容

後續也能隨需求增加而慢慢擴充

step2. 定義Compose Screen
* 針對你需要的畫面去實作,例如:
step3. 建立每個畫面的router
* 因為我們到時候要用到NavGraphBuilder

所以透過擴充NavGraphBuilder來指定每個畫面的router

像這邊就是把剛剛定義好的Login當作是他router的一個參考指標

然後為了導航到LoginScreen畫面所以在後面lambda裡面加入該畫面

step4. 註冊每個畫面
* 接著把你所有要導航的畫面加入到`NavHost` 內

startDestination:是你的開始畫面

navController:用來指定跳轉的控制器

跳轉畫面只要用navController去控制即可

如:navController.navigate(ElegantAccessScreen.Feedback.name)

step5. 達成一個activity多screen
* 最終你要新增畫面的時候

只要不斷實作Screen即可

實際使用:

跳回目錄