模式和元件

在 Android 8.0 中,「設定」選單提供多項元件和小工具, 涵蓋常見用途我們建議裝置製造商和開發人員使用 擴充「設定」應用程式的常見元件,使新的使用者介面 與現有的「設定」使用者介面保持一致

以下是改善項目的摘要:

  • 支援資料庫偏好設定架構中的分隔工具行為變更。分隔線為 現在會區分成不同的類別
  • ActionBar 主題變更。ActionBar 現在使用淺色主題, 強調色文字
  • 新的偏好設定版面配置。即使偏好設定,圖示空間也依然顯示 沒有圖示。

新小工具:

  • 應用程式詳細資料的標題小工具。顯示應用程式圖示、應用程式標籤 其他資訊
  • 部分頁面上的展開按鈕。頁面可在收合狀態開始時收合 重要項目直到使用者點擊展開按鈕
  • 預設應用程式挑選器 UI:
    • 選擇預設瀏覽器、預設手機應用程式等的 UI
    • 我們先前為對話方塊,現在是全螢幕圓形按鈕式 UI。
  • 「MasterSwitch」樣式偏好設定。這是透過兩次點擊的偏好選項 目標。左目標導向子設定片段或意圖。「適當的目標」 切換鈕,可控制整個頁面的開啟/關閉

範例和來源

  • 分隔線行為
    • 已將「設定」中的所有頁面改為使用新的分隔線。
    • 分隔線行為在以下位置定義為主題疊加層:
      packages/apps/Settings/res/values/styles_preference.xml
  • ActionBar 主題變更
    • 已修改「設定」中的所有頁面,採用新的 ActionBar 主題。
    • 主題定義於 Theme.DeviceDefault.Settings
  • 新的偏好設定版面配置
    • 「設定」中的許多頁面現在都使用新的偏好設定版面配置。
    • 驗證碼位於:
      packages/apps/Settings/res/values/styles_preference.xml
  • 應用程式標頭小工具
    • 「設定」中大部分的應用程式資訊頁面皆已導入 新的應用程式標題
    • 範例和程式碼位於:
      packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
  • 展開按鈕
    • 範例和程式碼位於:
      packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java

      注意:這個元件必須和 DashboardFragment。如要進一步瞭解 DashboardFragment,請參閱新版資訊架構

  • 預設應用程式挑選器
    • 您可以在下列位置找到基礎類別的程式碼:
      packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
    • DefaultAppPickerFragment 有多個子類別,每個子類別都能實作 可選用不同意圖的挑選器
  • MasterSwitch 樣式偏好設定
    • 確認碼位於: https://cs.android.com/android/platform/superproject/main/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
    • 其中一個用途範例是 Wi-Fi 主要開關。您可以在下列網址找到範例: packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java

實作

裝置製造商可以開始使用所有新推出的元件。 如果原始設備製造商決定導入新的「MasterSwitch」樣式偏好設定或預設應用程式 選擇器,應按照本文件中的範例和參考檔案進行操作 (Javadoc)。

自訂設定選單

  • 分隔線行為。如要變更分隔線的繪製方式,請更新設定分隔線的樣式 變更下列項目的值:
    • allowDividerAbove
    • allowDividerBelow
    • allowDividerAfterLastItem
  • ActionBar 主題顏色。活動應使用 Theme.DeviceDefault.Settings 做為主題;或 建立自訂主題,並使用 Theme.DeviceDefault.Settings 做為父項。
  • 應用程式標題小工具。在 AppHeaderController 中使用 setter 自訂每個欄位並呼叫 設定好所有欄位後,build()
  • 展開按鈕:
    • 如要完全停用此功能,請覆寫 ProgressiveDisclosureMixin,並將 keepExpanded 設為 true。
    • 如要自訂一開始顯示的項目數量,請呼叫 片段期間的 ProgressiveDisclosureMixin.setTileLimit() 方法 onAttach(Context) 方法。