Định cấu hình bảng điều khiển

Bảng điều khiển mô tả các thuộc tính của vùng mà bảng điều khiển chiếm giữ và hoạt động như một vùng chứa ứng dụng. Bạn sử dụng cấu hình XML để xác định các bảng điều khiển, cung cấp một phương pháp linh hoạt và không cần mã để tuỳ chỉnh giao diện người dùng. Để quản lý các thực thể và trạng thái, hệ thống sẽ theo dõi các bảng điều khiển đã xác định.

Danh sách bảng điều khiển

Giao diện người dùng hệ thống tải các định nghĩa của bảng điều khiển từ một tài nguyên mảng có tên là window_states. Mảng tài nguyên này trỏ đến các tệp XML, trong đó các cấu hình bảng điều khiển riêng lẻ được xác định. Phương pháp tập trung này có nghĩa là các bảng điều khiển do Giao diện người dùng có thể mở rộng quản lý sẽ được tải như dự kiến và sẵn sàng để hệ thống sử dụng.

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <array name="window_states">
       <item>@xml/app_panel</item>
       <item>@xml/back_panel</item>
       ...
   </array>
</resources>

Định nghĩa bảng điều khiển

Mỗi bảng điều khiển trong khung Giao diện người dùng có thể mở rộng được xác định bằng một thẻ XML có tên là <TaskPanel> hoặc <DecorPanel>. <TaskPanel> mô tả các thuộc tính của vùng chứa ứng dụng , trong khi <DecorPanel> mô tả các thuộc tính của vùng chứa khung hiển thị. Giao diện người dùng hệ thống tải các định nghĩa bảng điều khiển này và theo dõi các bảng điều khiển cho đến khi một cấu hình khác được tải. Ví dụ: do thay đổi cấu hình do xoay hoặc yêu cầu rõ ràng của hệ thống. The <TaskPanel> and <DecorPanel> đóng vai trò là các thành phần cơ bản để xây dựng trải nghiệm tuỳ chỉnh thông qua các thành phần giao diện người dùng có thể định cấu hình.

Thuộc tính XML

Thẻ <TaskPanel> có thể chứa các thuộc tính mà bạn có thể dùng để xác định trạng thái và quá trình chuyển đổi.

Thuộc tính Trạng thái Mô tả
id Bắt buộc Chỉ định giá trị nhận dạng duy nhất cho bảng điều khiển. Thuộc tính này được dùng để truy xuất bảng điều khiển từ PanelPool và quản lý trạng thái trong hệ thống.
role Bắt buộc Xác định mục đích hoặc chức năng của bảng điều khiển trong hệ thống. Giá trị này có thể tham chiếu đến tài nguyên chuỗi, mảng chuỗi tên thành phần hoặc mã bố cục. Ví dụ: giá trị này có thể xác định các hoạt động liên tục luôn phải xuất hiện trên bảng điều khiển hoặc một bố cục cần được mở rộng.
defaultVariant Không bắt buộc Chỉ định mã của biến thể mà bảng điều khiển ban đầu phải áp dụng khi được tải. Nếu không được chỉ định, hệ thống có thể sử dụng biến thể được xác định đầu tiên làm biến thể mặc định.
displayId Không bắt buộc Chỉ định mã của màn hình mà bảng điều khiển dự định xuất hiện.
defaultLayer Không bắt buộc Có thể chỉ định thứ tự Z mặc định cho các biến thể của bảng điều khiển nếu các biến thể không xác định rõ ràng một lớp.
controller Không bắt buộc,
có thể thay đổi

Tham chiếu đến một tài nguyên (thường là mã XML) xác định một bộ điều khiển dành riêng cho bảng điều khiển, cho phép lưu trữ và truyền các giá trị cấu hình đến các bộ điều khiển bảng điều khiển tuỳ chỉnh.

Các bộ điều khiển này phải triển khai giao diện com.android.car.scalableui.panel.TaskPanelController. Một trường hợp sử dụng phổ biến của các bộ điều khiển này là xác định các phân bổ tác vụ linh hoạt trong thời gian chạy trên bảng điều khiển.

Phần tử con XML

Thẻ <TaskPanel><DecorPanel> có thể bao gồm các phần tử con này để xác định các đặc điểm và hành vi mặc định.

Thuộc tính Mô tả
<Variant>

Thẻ lồng nhau mô tả một cấu hình hình ảnh cụ thể cho bảng điều khiển tại bất kỳ thời điểm nào. Một bảng điều khiển có thể có nhiều biến thể, mỗi biến thể được xác định bằng một mã duy nhất.

Mỗi biến thể xác định các thuộc tính như ranh giới, chế độ hiển thị, lớp, alpha, bán kính góc và phần chèn cho cấu hình cụ thể đó. Các biến thể cũng có thể kế thừa các thuộc tính từ biến thể gốc.

<KeyFrameVariant> Phần mở rộng của <Variant> cho phép nội suy các thuộc tính hình ảnh giữa các biến thể dựa trên giá trị phân số liên tục (từ 0 đến 1) và được dùng cho các quá trình chuyển đổi mượt mà và động, chẳng hạn như trong thao tác kéo, khi trạng thái của bảng điều khiển phụ thuộc vào một dữ liệu đầu vào liên tục như số lượng kéo.
<Transitions>

Thẻ lồng nhau chứa một tập hợp các <Transition> định nghĩa, mô tả cách giao diện người dùng nên tạo ảnh động giữa các biến thể.

Mỗi <Transition> xác định các biến thể từđến, sự kiện kích hoạt biến thể đó và có thể tuỳ ý chỉ định một Trình tạo ảnh động tuỳ chỉnh để dùng cho ảnh động, cũng như thời lượng và bộ nội suy.

Thẻ <TaskPanel> cũng có thể bao gồm các phần tử con đặc biệt này để xác định các hành vi dành riêng cho tác vụ.

Thuộc tính Mô tả
<Restart> Thẻ lồng nhau để mô tả chính sách khởi động lại sẽ được áp dụng khi a TaskPanel trở thành trống. Thẻ này hỗ trợ các thuộc tính policy (có thể được đặt thành DEFAULT hoặc LAST) và maxRetry (chỉ định số lần khởi động lại sẽ được thử trước khi hết thời gian chờ).
<TaskBehavior> Thẻ lồng nhau để mô tả hành vi của việc khởi chạy tác vụ trên bảng điều khiển này. Thẻ này hỗ trợ thuộc tính newTaskLaunchPolicy, định cấu hình hành vi của việc khởi chạy tác vụ mới từ TaskPanel này. Các giá trị cấu hình hợp lệ cho chính sách này là DEFAULT, REMAIN_IN_SOURCE, hoặc REPARENT_TO_SOURCE.

Mã mẫu

<TaskPanel id="@+id/panelId"
           role="@array/roleValue"
           defaultVariant="@id/closed"
           displayId="0" >

 <Variant id="@+id/base">
        <Bounds left="0" top="0" width="100%" height="100%"/>
 </Variant>

<Variant id="@+id/opened" parent="@id/base">
    <Visibility isVisible="true"/>
</Variant>
<Variant id="@+id/closed"  parent="@id/base">
    <Visibility isVisible="false"/>
</Variant>

<Transitions>
    <Transition fromVariant="@id/closed"
                toVariant="@id/opened"
                onEvent="open_event"/>
        <Event id="_System_TaskOpenEvent" panelId="@id/panelId" />
    </Transition>
</Transitions>
</TaskPanel>