Mengonfigurasi panel

Panel menjelaskan properti area yang ditempatinya dan bertindak sebagai penampung aplikasi. Anda menggunakan konfigurasi XML untuk menentukan panel, yang menyediakan pendekatan fleksibel dan tanpa kode untuk menyesuaikan UI. Untuk mengelola instance dan status, sistem melacak panel yang ditentukan.

Daftar panel

UI Sistem memuat definisi panelnya dari resource array bernama window_states. Array resource ini mengarah ke file XML, tempat konfigurasi panel individual ditentukan. Pendekatan terpusat ini berarti panel yang dikelola oleh UI yang Dapat Diskalakan dimuat sesuai keinginan dan siap digunakan oleh sistem.

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

Definisi panel

Setiap panel dalam framework UI yang Dapat Diskalakan ditentukan dengan tag XML bernama <TaskPanel> atau <DecorPanel>. <TaskPanel> menjelaskan properti penampung aplikasi , sedangkan <DecorPanel> menjelaskan properti penampung tampilan. UI Sistem memuat definisi panel ini dan melacak panel hingga konfigurasi lain dimuat. Misalnya, dengan perubahan konfigurasi karena rotasi atau permintaan sistem eksplisit. The <TaskPanel> and <DecorPanel> serve as komponen dasar untuk membangun pengalaman yang disesuaikan melalui komponen UI yang dapat dikonfigurasi.

Atribut XML

Tag <TaskPanel> dapat berisi atribut yang dapat Anda gunakan untuk menentukan status dan transisi.

Atribut Status Deskripsi
id Wajib Menentukan ID unik untuk panel. Atribut ini digunakan untuk mengambil panel dari PanelPool dan mengelola statusnya dalam sistem.
role Wajib Menentukan tujuan atau fungsi panel dalam sistem. Nilai dapat merujuk ke resource string, array string nama komponen, atau ID tata letak. Misalnya, nilai ini dapat menentukan aktivitas persisten yang harus selalu ditampilkan di panel, atau tata letak yang akan di-inflate.
defaultVariant Opsional Menentukan ID varian yang awalnya harus diadopsi panel saat dimuat. Jika tidak ditentukan, sistem dapat menggunakan varian pertama yang ditentukan sebagai default.
displayId Opsional Menentukan ID tampilan tempat panel akan muncul.
defaultLayer Opsional Dapat menentukan urutan-Z default untuk varian panel jika varian tidak secara eksplisit menentukan lapisan.
controller Opsional,
dapat berubah

Mereferensikan resource (biasanya ID XML) yang menentukan pengontrol khusus panel yang memungkinkan penyimpanan dan penerusan nilai konfigurasi ke pengontrol panel kustom.

Pengontrol ini harus mengimplementasikan com.android.car.scalableui.panel.TaskPanelController antarmuka. Kasus penggunaan umum pengontrol ini adalah menentukan alokasi tugas runtime yang fleksibel di panel.

Elemen turunan XML

Tag <TaskPanel> dan <DecorPanel> dapat menyertakan elemen turunan ini untuk menentukan karakteristik dan perilaku default.

Atribut Deskripsi
<Variant>

Tag bertingkat menjelaskan konfigurasi visual tertentu untuk panel pada waktu tertentu. Panel dapat memiliki beberapa varian, yang masing-masing diidentifikasi oleh a ID unik.

Setiap varian menentukan properti seperti batas, visibilitas, lapisan, alfa, radius sudut, dan inset untuk konfigurasi tertentu tersebut. Varian juga dapat mewarisi properti dari varian induk.

<KeyFrameVariant> Ekstensi <Variant> memungkinkan interpolasi properti visual antara varian yang berbeda berdasarkan nilai fraksi berkelanjutan (0 hingga 1) dan digunakan untuk transisi yang lancar dan dinamis, seperti selama operasi tarik, saat status panel bergantung pada input berkelanjutan seperti jumlah tarik.
<Transitions>

Tag bertingkat berisi kumpulan <Transition> definisi, yang menjelaskan cara UI harus dianimasikan antara varian yang berbeda.

Setiap <Transition> menentukan varian dari dan ke, peristiwa yang memicunya, dan secara opsional dapat menentukan Animator kustom yang akan digunakan untuk animasi, serta durasi dan interpolator.

Tag <TaskPanel> juga dapat menyertakan elemen turunan khusus ini untuk menentukan perilaku khusus tugas.

Atribut Deskripsi
<Restart> Tag bertingkat untuk menjelaskan kebijakan mulai ulang yang akan diterapkan saat a TaskPanel kosong. Tag ini mendukung atribut policy, yang dapat ditetapkan ke DEFAULT atau LAST, dan maxRetry, yang menentukan berapa kali upaya memulai ulang akan dilakukan sebelum waktu tunggu habis.
<TaskBehavior> Tag bertingkat untuk menjelaskan perilaku peluncuran tugas di panel ini. Tag ini mendukung atribut newTaskLaunchPolicy, yang mengonfigurasi perilaku peluncuran tugas baru dari TaskPanel ini. Nilai konfigurasi yang valid untuk kebijakan ini adalah DEFAULT, REMAIN_IN_SOURCE, atau REPARENT_TO_SOURCE.

Kode contoh

<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>