練習:加入導覽功能

1. 事前準備

恭喜!您已經透過 Jetpack Compose 建構了第一個應用程式,該應用程式可在多個畫面間導覽。現在可以準備將所學應用在實務上了。

本練習著重於建立必要的元件,以便為具有多個組合畫面的應用程式加入導覽功能。本教材會根據您在「使用 Compose 切換螢幕」程式碼研究室學到的知識進一步延伸,協助您瞭解如何運用所學,在現有應用程式中加入導覽功能。

雖然解決方案程式碼就在這個練習的結尾處,但請先試著解決練習中的問題,再查看答案。請將解決方案當成實作應用程式的其中一種方式。

必要條件

軟硬體需求

  • 已安裝 Android Studio 且連上網路的電腦
  • Lunch Tray 應用程式的範例程式碼

建構項目

在這些練習題中,您必須加入導覽功能,以完成 Lunch Tray 應用程式的設計。Lunch Tray 應用程式是互動式的午餐訂購應用程式,內含三個畫面。應用程式有三種選單項目,每個畫面分別代表其中一種,您可以選取:主餐、配菜和小菜。

練習題會分為幾個部分,您需要在其中進行以下操作:

  • 為使用者瀏覽的每個畫面建立參照。
  • 初始化導覽控制器。
  • 建立頂端列,在適用情況下顯示畫面標題和導覽按鈕。
  • 設定導覽架構,決定從一個畫面到下一個畫面的路徑。

最後的應用程式流程將如下所示:

6e7d1c4638c64988.png

2. 做好準備

下載範例程式碼

  1. 在 Android Studio 中開啟 basic-android-kotlin-compose-training-lunch-tray 資料夾。
  2. 在 Android Studio 中開啟 Lunch Tray 應用程式程式碼。

3. 畫面列舉

在本節中,您將建立 enum 類別,用來保存下列 Lunch Tray 應用程式畫面的常數:

  • Start
  • Entree menu
  • Side dish menu
  • Accompaniment menu
  • Checkout

每個畫面都應該要有字串形式的相關標題。範例程式碼會提供這些字串做為資源。

4. 導覽控制器和初始化作業

在這個部分中,您將建立導覽控制器。此外,您也會初始化返回堆疊項目和目前畫面的名稱。

目前畫面的名稱應為初始畫面名稱,或是目的地畫面的名稱 (如果有的話)。

5. AppBar

Scaffold 可組合函式的 AppBar 建立可組合函式。AppBar 應該會顯示目前畫面的標題。如果可以返回瀏覽,畫面上也應該顯示適用的返回瀏覽按鈕。「Start」畫面不應提供返回瀏覽功能。

最終螢幕截圖

以下螢幕截圖顯示 AppBar 的兩個範例:一個沒有返回按鈕,另一個有返回按鈕。

89162a2f5b189ffc.png 4a908f1153e7773e.png

UI 規格

使用 Icons.Filled.ArrowBack 圖示做為返回瀏覽按鈕。

6. 導覽架構

在本練習中,您將使用導覽架構為 Lunch Tray 應用程式建構導覽路徑。

下圖顯示 Lunch Tray 應用程式的導覽流程:

61df3b2ee856325a.png

  • 「Start」畫面上的「Start Order」按鈕可前往「Entree menu」畫面
  • 「Entree menu」畫面的「Next」按鈕可前往「Side dish menu」畫面。
  • 「Side dish menu」畫面的「Next」按鈕可前往「Accompaniment menu」畫面。
  • 「Accompaniment menu」畫面的「Next」按鈕可前往「Checkout」畫面。
  • 「Checkout」畫面的「Submit」按鈕可前往「Start」畫面。
  • 任何畫面上的「Cancel」按鈕都可以返回「Start」畫面。

最終結果

完成實作後,您的應用程式導覽流程應如下所示:

edb246dff8cf57f0.gif

7. 取得解決方案程式碼