Ikhtisar tata letak dasar
Toolbar car-ui-lib dikustomisasi melalui file tata letak car_ui_base_layout_toolbar.xml
. Disebut toolbar *tata letak dasar* karena file tata letak ini berisi FrameLayout
dengan id car_ui_base_layout_content_container
, yang akan berisi semua konten aplikasi segera setelah tata letak diperluas. Struktur ini memungkinkan OEM menempatkan toolbar di lokasi selain bagian atas layar.
Kemungkinan tata letak | ||
---|---|---|
Dengan mengubah parameter tata letak pada car_ui_base_layout_content_container
, aplikasi dapat dikompresi menjadi area yang lebih kecil untuk memberi ruang bagi toolbar. Namun, beberapa penyesuaian mungkin memerlukan toolbar transparan dan dilapis di atas aplikasi. Dalam hal ini, tampilan dapat diberi tag dengan car_ui_top/bottom/left/right_inset
. Jika car-ui-lib mendeteksi tampilan dengan tag seperti itu, ia akan mengomunikasikan posisi dan dimensi tampilan tersebut ke aplikasi, sehingga dapat membuat kontennya masuk ke dalam dengan jumlah tersebut, namun tetap mempertahankan latar belakang yang masuk akal di ruang di bawah toolbar . Misalnya, sebagian besar aplikasi akan memiliki item pertama di CarUiRecyclerView yang dimulai di bawah insets yang ditentukan, namun masih terlihat di belakang toolbar saat pengguna menggulir ke bawah.
Dukungan putar
Untuk mendukung pengontrol putar, tata letak dasar harus berisi FocusParkingView
sedini mungkin dalam tata letak. Tampilan inilah yang menjadi fokus ketika tidak ada fokus yang terlihat oleh pengguna. Toolbar juga harus dibungkus dengan FocusParkingView
, yang menetapkan bahwa itu adalah zona dorongan terpisah untuk pengontrol putar. Jika tidak dibungkus dalam FocusParkingView, maka pengguna tidak dapat berinteraksi dengan toolbar dengan pengontrol putar.
tab
Tab toolbar disesuaikan dengan file tata letak car_ui_toolbar_tab_item.xml
atau car_ui_toolbar_tab_item_flexible.xml
. Tidak ada perbedaan fungsional antara file, sumber daya car_ui_toolbar_tab_flexible_layout
Boolean menentukan mana yang digunakan. Oleh karena itu, disarankan untuk membiarkan car_ui_toolbar_tab_flexible_layout
disetel ke false
dan hanya menyesuaikan file tata letak biasa.
ImageView
tab akan diwarnai dengan warna car_ui_toolbar_tab_item_selector
dalam kode Java, jadi car_ui_toolbar_tab_item_selector
harus disesuaikan dengan tata letaknya. Aplikasi dapat meminta agar ikon tabnya tidak diwarnai dengan warna ini juga.
TextView
tab memiliki tampilan teks yang disetel ke TextAppearance.CarUi.Widget.Toolbar.Tab
atau TextAppearance.CarUi.Widget.Toolbar.Tab.Selected
dalam kode Java, sehingga tampilan teks yang disetel pada file tata letak tidak akan berlaku. Gaya-gaya ini juga harus disesuaikan.
Item Menu
MenuItems
adalah tombol di sudut kanan atas toolbar default. Itu bisa berupa teks, ikon, ikon dan teks, atau sakelar. Variasi ini adalah bagian dari file tata letak car_ui_toolbar_menu_item
, karena MenuItems
harus dapat berubah di antara setiap formulir jika aplikasi memintanya.
MenuItems
dapat berupa primary , yang mengembangkan file tata letak yang berbeda: car_ui_toolbar_menu_item_primary
. MenuItem utama harus terlihat berbeda secara visual dari MenuItem normal, misalnya melalui tombol berbatas/tanpa batas. Secara default, car_ui_toolbar_menu_item_primary
hanya dialihkan ke car_ui_toolbar_menu_item
, sehingga terlihat sama.
MenuItems
dapat diaktifkan , yang merupakan keadaan visual lain yang menunjukkan bahwa MenuItem ini diaktifkan. Status ini diimplementasikan dengan memanggil setActivated(true)
pada tampilan MenuItem, yang menambahkan status state_activated
ke semua drawable dalam tampilan MenuItem. Status drawable ini dapat ditanggapi dengan pemilih drawable di runtime resource overlay (RRO).
MenuItems
dapat dibatasi UX saat kendaraan bergerak. Pembatasan UX hanyalah status drawable lainnya seperti activation , namun kali ini status tersebut ditentukan di aplikasi, bukan di framework Android. Artinya, atribut state_ux_restricted
juga harus di-overlay dengan RRO, sehingga atribut yang ditentukan di RRO cocok dengan atribut yang ditentukan di aplikasi.
Mencari
Bilah pencarian terdapat dalam file tata letakcar_ui_toolbar_search_view
terpisah, untuk meningkatkan kinerja inflasi tata letak untuk aplikasi yang tidak memerlukan bilah pencarian. FrameLayout
dengan id car_ui_toolbar_search_view_container
akan berisi bilah pencarian saat dipompa.