Các mẫu và thành phần

Trong Android 8.0, menu Cài đặt có 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. Các nhà sản xuất và nhà phát triển thiết bị được khuyến khích sử dụng các thành phần phổ biến 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 Cài đặt hiện có.

Dưới đây là tóm tắt các cải tiến:

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

Các vật dụng mới:

  • Một widget tiêu đề để biết chi tiết ứ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 dưới dạng 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 của bộ chọn ứng dụng mặc định:
    • 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à hộp thoại, giờ đây là giao diện người dùng dựa trên nút radio toàn màn hình.
  • Tùy chọn kiểu "MasterSwitch". Đây là tùy chọn có hai mục tiêu nhấp chuột. Mục tiêu bên trái dẫn đến một phân đoạn hoặc ý định tập hợp lại. Mục tiêu bên phải là nút chuyển đổi, điều khiển bật/tắt cho toàn bộ trang.

Ví dụ và nguồn

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

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

  • 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 triển khai một bộ chọn cho các mục đích khác nhau.
  • Tùy chọn kiểu MasterSwitch
    • Mã có tại: https://cs.android.com/android/platform/superproject/+/main:packages/apps/Settings/src/com/android/settings/wifi/WifiPrimarySwitchPreferenceController.java
    • Một trường hợp sử dụng ví dụ là công tắc chính Wi-Fi. Bạn có thể tìm thấy ví dụ tại: packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java

Thực hiện

Các 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 lập tức. Nếu các OEM quyết định triển khai tùy chọn kiểu "MasterSwitch" mới hoặc bộ chọn ứng dụng mặc định, họ nên làm theo các ví dụ trong tài liệu này và các tệp tham chiếu (Javadoc) được viết cùng với từng thành phần để biết thêm chi tiết.

Tùy chỉnh

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