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 trường hợp 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 phổ biến khi mở rộng ứng dụng Cài đặt để giao diện người dùng mới nhất quán với giao diện người dùng Cài đặt hiện có.
Dưới đây là bản tóm tắt các điểm cải tiến:
- Thay đổi hành vi của dải phân cách trong khung Tuỳ chọn của thư viện hỗ trợ. Dải phân cách hiện được vẽ giữa các danh mục.
- Thay đổi giao diện ActionBar. ActionBar hiện sử dụng chủ đề màu sắc sáng, với văn bản có màu nhấn.
- Bố cục tuỳ chọn mới. Không gian dành cho biểu tượng vẫn còn ngay cả khi một tuỳ chọn không có biểu tượng.
Tiện ích mới:
- Tiện ích tiêu đề cho chi tiết ứng dụng. Hiển thị biểu tượng ứng dụng, nhãn ứng dụng và 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 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 toàn màn hình dựa trên nút chọn.
- Tuỳ chọn kiểu "MasterSwitch". Đây là tuỳ chọn có 2 mục tiêu nhấp. Mục tiêu bên trái dẫn đến một mảnh hoặc ý định phụ. Mục tiêu bên phải là 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 dải phân cách
- Tất cả các trang trong phần Cài đặt đều được sửa đổi để sử dụng hành vi mới của dải phân cách.
- Hành vi của dải phân cách được xác định là 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 tuỳ chọn mới
- Nhiều trang trong phần Cài đặt hiện đang sử dụng bố cục tuỳ 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 phần Cài đặt đều đã triển khai Tiêu đề ứng dụng mới.
- Bạn có thể tìm thấy 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ể tìm thấy ví dụ và mã tại:
packages/apps/Settings/src/com/android/settings/dashboard/ProgressiveDisclosureMixin.javaLư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 Kiến trúc thông tin đã cập nhật.)
- Bạn có thể tìm thấy ví dụ và mã tạ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 triển khai một bộ chọn cho ý định khác nhau.
- Bạn có thể tìm thấy mã cho lớp cơ sở trong:
- MasterSwitch tuỳ chọn kiểu
- Mã nằm tại:
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à nút chuyển chính của Wi-Fi. Bạn có thể tìm thấy ví dụ tại:
packages/apps/Settings/src/com/android/settings/wifi/WifiMasterSwitchPreferenceController.java
- Mã nằm tại:
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 xuất xưởng. Nếu OEM quyết định triển khai tuỳ chọn kiểu "MasterSwitch" mới hoặc bộ chọn ứng dụng mặc định, thì 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 bằng từng thành phần để biết thêm thông tin chi tiết.
Tuỳ chỉnh trình đơn cài đặt
- Hành vi của dải phân cách. Để thay đổi cách vẽ dải phân cách, hãy cập nhật kiểu cho dải phân cách Cài đặt và thay đổi giá trị cho các mục sau:
allowDividerAboveallowDividerBelowallowDividerAfterLastItem
- Màu giao diện ActionBar. Các hoạt động nên sử dụng
Theme.DeviceDefault.Settingslàm giao diện hoặc tạo giao diện tuỳ chỉnh bằng cách sử dụngTheme.DeviceDefault.Settingslàm lớp mẹ. - Tiện ích tiêu đề ứng dụng. Sử dụng trình thiết lập trong AppHeaderController để tuỳ chỉnh từng trường và gọi
build()sau khi đặt 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 hiển thị ban đầu, hãy gọi phương thức
ProgressiveDisclosureMixin.setTileLimit()trong phương thứconAttach(Context)của mảnh.