Android 12 giới thiệu thiết kế khung kép , với menu L0 tĩnh ở bên trái và khung nội dung ở bên phải. Tính năng này giới thiệu nhiều tùy chọn tùy chỉnh mới. Trang này nêu chi tiết các tính năng đó và giải thích cách bạn có thể tùy chỉnh các tùy chọn của riêng mình.
Hoàn nguyên về khung đơn
Theo mặc định, CarSettings hiện hiển thị chế độ xem khung kép khi cửa sổ ứng dụng có chiều rộng lớn hơn hoặc bằng 1400dp và chế độ xem khung đơn nếu ngược lại. Để tùy chỉnh điều này cho một thiết bị cụ thể, hãy sử dụng lớp phủ tài nguyên thời gian chạy (RRO) để nhắm mục tiêu các giá trị cấu hình cần thiết:
Giá trị | Sự miêu tả |
---|---|
config_global_force_single_pane | Đặt thành true nếu toàn bộ ứng dụng chạy ở cấu hình một ngăn. |
config_homepage_fragment_class | Chỉ định đoạn bắt đầu cho trang chủ. Trong khung kép, phần này được sử dụng cho đoạn đầu tiên trong khung nội dung. Trong một khung, đây phải là đoạn trang chủ. |
Phím tiêu đề
Vì các hoạt động CarSettings khác nhau có thể có IA tùy chỉnh nên ánh xạ khóa tiêu đề được cung cấp để đơn giản hóa các tùy chỉnh. Trong AndroidManifest.xml
, mọi hoạt động hỗ trợ khung kép đều có TOP_LEVEL_HEADER_KEY
được chỉ định trong siêu dữ liệu của nó. Giá trị này trỏ tới một khóa được chỉ định trong res/values/header_keys.xml
, được ánh xạ tới khóa ưu tiên của mục menu cấp cao nhất chứa đoạn bắt đầu. Do đó, nếu đoạn bắt đầu của một hoạt động bị thay đổi hoặc IA được sắp xếp lại sao cho một đoạn cụ thể nằm trong một tùy chọn cấp cao nhất khác, thì (các) ánh xạ có liên quan trong tệp header_keys.xml
có thể được cập nhật để chỉ định giá trị chính xác .
Tùy chỉnh bố cục hoạt động
Bố cục của BaseCarSettingsActivity
nằm ở res/layout/car_setting_activity
và trong các phần sau:
Giá trị | Sự miêu tả |
---|---|
top_level_menu | Đoạn menu cấp cao nhất được hiển thị trong cấu hình khung kép. Chiều rộng của phần này được chỉ định bởi top_level_menu_width . Bố cục khung gầm (có thanh công cụ) được bao quanh khung nhìn này. |
top_level_divider | Đường thẳng đứng chia hai khung và bạn có thể tùy chỉnh chiều rộng của nó bằng top_level_divider_width . |
fragment_container_wrapper | Bố cục trình bao bọc cho ngăn nội dung (hoặc ngăn chính trong cấu hình một ngăn). Bố cục khung gầm (có thanh công cụ) được bao quanh khung nhìn này. |
settings_focus_parking_view | Triển khai tùy chỉnh FocusParkingView để giữ tiêu điểm xoay khi cần. |
fragment_container | Vùng chứa nội dung chính. Các đoạn nội dung sử dụng điều này làm bố cục mục tiêu. |
restricted_message | Chế độ xem chặn bị hạn chế UX sẽ được hiển thị trên các phiên bản của BaseFragment . |
Hình 1. Bố cục khung kép
Tùy chọn cấp cao nhất
Tùy chọn cấp cao nhất là CarUiPreferences tùy chỉnh với bố cục được sửa đổi một chút để thay đổi chiều cao tùy chọn và hình dạng nền. Có nhiều cách khác nhau để tùy chỉnh giao diện của các tùy chọn này:
Giá trị | Sự miêu tả |
---|---|
res/layout/top_level_preference.xml | Xếp chồng toàn bộ bố cục ưu tiên. |
top_level_preference_min_height | Chiều cao tối thiểu của tùy chọn cấp cao nhất. Tùy thuộc vào nội dung (ví dụ: có phụ đề), tùy chọn có thể cao hơn giá trị này. |
top_level_preference_corner_radius | Bán kính làm tròn góc. |
top_level_preference_background | Nền của các tùy chọn cấp cao nhất hiện không được đánh dấu. |
top_level_preference_highlight | Nền của các tùy chọn cấp cao nhất khi được đánh dấu. |
Biểu tượng cấp cao nhất
Hình 2 minh họa cách các biểu tượng cấp cao nhất hiện nay bao gồm biểu tượng vectơ bên trong hình nền có màu. Hình dạng này hiện được định cấu hình để hỗ trợ hình bầu dục hoặc hình chữ nhật. Theo mặc định, hình dạng được đặt thành hình bầu dục.
Để thay đổi giá trị mặc định, hãy sửa đổi giá trị trong config_top_level_icon_shape
(trong đó 0 là hình chữ nhật và 1 là hình bầu dục). Các biểu tượng được tạo bằng cách chèn biểu tượng nền trước theo top_level_foreground_icon_inset
từ hình nền. Mỗi biểu tượng cấp cao nhất có màu nền trước được chỉ định trong res/values/colors.xml
và màu nền được chỉ định trong thư mục res/color
.
Để tạo giao diện tùy chỉnh, bạn có thể ghi đè tất cả các giá trị màu.
Hình 2. Các thành phần ưu tiên cấp cao nhất
Các biểu tượng dành cho tùy chọn được chèn thuộc các danh mục được chỉ định bởi config_top_level_injection_categories
cũng được coi là biểu tượng cấp cao nhất. Các biểu tượng được cung cấp được lồng vào cùng một giá trị và có cùng hình dạng như được chỉ định cho tất cả các biểu tượng cấp cao nhất khác (xem ở trên). Tuy nhiên, nền được xác định bằng cách xem xét các thuộc tính sau theo thứ tự sau:
-
com.android.settings.bg.argb
Dữ liệu meta từ ứng dụng tiêm. -
com.android.settings.bg.hint
Dữ liệu meta từ ứng dụng tiêm. -
top_level_injected_default_background
Được chỉ định trongres/values/colors.xml
.
Để bỏ qua dữ liệu ứng dụng được đưa vào và luôn sử dụng nền mặc định, hãy đặt config_top_level_injection_background_always_use_default
thành true
.