Mẫu và thành phần

Trong Android 8.0, trình đơn Cài đặt có thêm một số thành phần và tiện ích bao gồm các mục đích sử dụng phổ biến. Nhà sản xuất thiết bị và nhà phát triển nên sử dụng các thành phần chung khi mở rộng ứng dụng Cài đặt để giao diện người dùng mới luôn nhất quán với giao diện người dùng hiện tại của phần Cài đặt.

Sau đây là nội dung tóm tắt về các điểm cải tiến:

  • Thay đổi về hành vi của đường phân chia trong khung Cài đặt ưu tiên của thư viện hỗ trợ. Giờ đây, đường phân chia được vẽ giữa các danh mục.
  • Thay đổi giao diện ActionBar. Giờ đây, ActionBar sử dụng giao diện màu sáng, với văn bản có màu nhấn.
  • Bố cục lựa chọn ưu tiên mới. Không gian cho biểu tượng vẫn còn ngay cả khi lựa chọn ưu tiên không có biểu tượng.

Tiện ích mới:

  • Một tiện ích tiêu đề cho thông tin chi tiết về ứng dụng. Hiển thị biểu tượng ứng dụng, nhãn ứng dụng và các thông tin khác.
  • Nút mở rộng trên một số trang. Trang có thể bắt đầu ở trạng thái thu gọn và ẩn các mục ít quan trọng hơn cho đến khi người dùng nhấp vào nút mở rộng.
  • Giao diện người dùng mặc định của bộ chọn ứng dụng:
    • Giao diện người dùng để chọn trình duyệt mặc định, ứng dụng điện thoại mặc định, v.v.
    • Trước đây là một hộp thoại, giờ đây, đây là giao diện người dùng toàn màn hình dựa trên nút chọn.
  • Lựa chọn ưu tiên về kiểu "MasterSwitch". Đây là một lựa chọn ưu tiên có 2 mục tiêu nhấp chuột. Mục tiêu bên trái dẫn đến một mảnh hoặc ý định phân nhóm. Đích đến bên phải là một nút bật/tắt, kiểm soát trạng thái bật/tắt cho toàn bộ trang.

Ví dụ và nguồn

  • Hành vi của đường phân chia
    • Tất cả các trang trong phần Cài đặt đều được sửa đổi để sử dụng hành vi của đường phân chia mới.
    • Hành vi của đường phân chia được xác định là một ThemeOverlay trong:
      packages/apps/Settings/res/values/styles_preference.xml
  • Thay đổi giao diện ActionBar
    • Tất cả các trang trong phần Cài đặt đều được sửa đổi để sử dụng giao diện ActionBar mới.
    • Giao diện được xác định trong Theme.DeviceDefault.Settings
  • Bố cục lựa chọn ưu tiên mới
    • Nhiều trang trong phần Cài đặt hiện đang sử dụng bố cục lựa chọn ưu tiên mới.
    • Bạn có thể tìm thấy mã này trong:
      packages/apps/Settings/res/values/styles_preference.xml
  • Tiện ích đầu trang ứng dụng
    • Hầu hết các trang thông tin ứng dụng trong phần Cài đặt đều đang triển khai tiêu đề Ứng dụng mới.
    • Bạn có thể xem các ví dụ và mã tại:
      packages/apps/Settings/src/com/android/settings/applications/AppHeaderController.java
  • Nút mở rộng
    • Bạn có thể xem các ví dụ và mã tại:
      packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.java

      Lưu ý: Bạn phải sử dụng thành phần này cùng với DashboardFragment. (Xem thêm thông tin chi tiết về DashboardFragment trong Cấu trúc thông tin mới.)

  • Bộ chọn ứng dụng mặc định
    • Bạn có thể tìm thấy mã cho lớp cơ sở trong:
      packages/apps/Settings/src/com/android/settings/applications/defaultapps/DefaultAppPickerFragment.java
    • Có một số lớp con của DefaultAppPickerFragment, mỗi lớp con triển khai một bộ chọn cho ý định khác nhau.
  • Lựa chọn ưu tiên về kiểu MasterSwitch
    • Mã nằm ở: https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
    • Một ví dụ về trường hợp sử dụng là công tắc chính của Wi-Fi. Bạn có thể xem ví dụ tại: packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java

Triển khai

Nhà sản xuất thiết bị có thể bắt đầu sử dụng tất cả các thành phần mới ngay khi mua. Nếu quyết định triển khai một lựa chọn ưu tiên theo kiểu "MasterSwitch" mới hoặc trình chọn ứng dụng mặc định, thì các OEM nên làm theo ví dụ trong tài liệu này và các tệp tham chiếu (Javadoc) được viết bằng từng thành phần để biết thêm chi tiết.

Tuỳ chỉnh trình đơn cài đặt

  • Hành vi của đường phân chia. Để thay đổi cách vẽ đường phân chia, hãy cập nhật kiểu cho đường phân chia Cài đặt và thay đổi giá trị cho những mục sau đây:
    • allowDividerAbove
    • allowDividerBelow
    • allowDividerAfterLastItem
  • Màu giao diện của ActionBar. Các hoạt động nên sử dụng Theme.DeviceDefault.Settings làm giao diện hoặc tạo một giao diện tuỳ chỉnh bằng cách sử dụng Theme.DeviceDefault.Settings làm giao diện mẹ.
  • Tiện ích tiêu đề ứng dụng. Sử dụng các phương thức thiết lập trong AppHeaderController để tuỳ chỉnh từng trường và gọi build() sau khi bạn thiết lập tất cả các trường.
  • Nút mở rộng:
    • Để tắt hoàn toàn chức năng này, hãy ghi đè hàm khởi tạo cho ProgressiveDisclosureMixin và đặt keepExpanded thành true.
    • Để tuỳ chỉnh số lượng mục cần hiển thị ban đầu, hãy gọi phương thức ProgressiveDisclosureMixin.setTileLimit() trong phương thức onAttach(Context) của mảnh.