Présentation de la disposition de base
La barre d'outils car-ui-lib est personnalisée via le fichier de mise en page car_ui_base_layout_toolbar.xml
. On l'appelle la barre d'outils *mise en page de base* car ce fichier de mise en page contient un FrameLayout
avec l'identifiant car_ui_base_layout_content_container
, qui contiendra tout le contenu de l'application peu de temps après le gonflement de la mise en page. Cette structure permet à l'OEM de placer la barre d'outils à des emplacements autres que le haut de l'écran.
Dispositions possibles | ||
---|---|---|
En modifiant les paramètres de mise en page sur car_ui_base_layout_content_container
, l'application peut être compressée dans une zone plus petite pour libérer de l'espace pour la barre d'outils. Cependant, certaines personnalisations peuvent nécessiter que la barre d'outils soit transparente et superposée au-dessus de l'application. Dans ce cas, les vues peuvent être étiquetées avec car_ui_top/bottom/left/right_inset
. Si car-ui-lib détecte une vue avec une telle balise, il communique la position et les dimensions de cette vue à l'application, afin qu'elle puisse indenter son contenu vers l'intérieur de cette quantité, tout en conservant un arrière-plan raisonnable dans l'espace sous la barre d'outils. . Par exemple, la plupart des applications auront le premier élément de leur CarUiRecyclerView démarrer en dessous des encarts spécifiés, mais seront toujours visibles derrière la barre d'outils lorsque l'utilisateur fait défiler vers le bas.
Soutien rotatif
Pour prendre en charge les contrôleurs rotatifs, la configuration de base doit contenir un FocusParkingView
le plus tôt possible dans la configuration. Cette vue est ce qui est mis au point lorsqu'aucun focus n'est visible pour l'utilisateur. La barre d'outils doit également être enveloppée dans un FocusParkingView
, qui spécifie qu'il s'agit d'une zone de déplacement distincte pour le contrôleur rotatif. S'il n'est pas enveloppé dans un FocusParkingView, l'utilisateur ne peut pas interagir avec la barre d'outils avec le contrôleur rotatif.
Onglets
Les onglets de la barre d'outils sont personnalisés par les fichiers de présentation car_ui_toolbar_tab_item.xml
ou car_ui_toolbar_tab_item_flexible.xml
. Il n'y a pas de différence fonctionnelle entre les fichiers, la ressource booléenne car_ui_toolbar_tab_flexible_layout
détermine laquelle est utilisée. Par conséquent, il est recommandé de conserver car_ui_toolbar_tab_flexible_layout
défini sur false
et de personnaliser uniquement le fichier de mise en page standard.
L' ImageView
de l'onglet sera teinté avec la couleur car_ui_toolbar_tab_item_selector
dans le code Java, donc car_ui_toolbar_tab_item_selector
doit être personnalisé à côté de la mise en page. Les applications peuvent également demander que les icônes de leurs onglets ne soient pas teintées avec cette couleur.
L'apparence du texte de TextView
de l'onglet est définie sur TextAppearance.CarUi.Widget.Toolbar.Tab
ou TextAppearance.CarUi.Widget.Toolbar.Tab.Selected
dans le code Java, de sorte que l'apparence du texte définie sur le fichier de mise en page ne s'applique pas. Ces styles doivent également être personnalisés.
Éléments de menu
MenuItems
sont les boutons dans le coin supérieur droit de la barre d'outils par défaut. Il peut s'agir de texte, d'icônes, d'icônes et de texte ou de commutateurs. Ces variations font toutes partie du fichier de mise en page car_ui_toolbar_menu_item
, car les MenuItems
doivent pouvoir changer entre chaque formulaire si l'application le demande.
MenuItems
peut être Primary , ce qui gonfle un fichier de mise en page différent : car_ui_toolbar_menu_item_primary
. Un MenuItem principal doit être visuellement distinct du MenuItem normal, par exemple via un bouton avec/sans bordure. Par défaut, car_ui_toolbar_menu_item_primary
redirige simplement vers car_ui_toolbar_menu_item
, donc ils se ressemblent.
MenuItems
can be activated , qui est un autre état visuel qui indique que ce MenuItem est basculé. Cet état est implémenté en appelant setActivated(true)
sur la vue MenuItem, qui ajoute l'état state_activated
à tous les drawables dans les vues MenuItem. Il est possible de répondre à cet état dessinable avec un sélecteur dessinable dans la superposition de ressources d'exécution (RRO).
MenuItems
peuvent être restreints UX lorsque le véhicule est en mouvement. UX restreint n'est qu'un autre état dessinable comme activateur , mais cette fois, l'état est défini dans l'application au lieu du framework Android. Cela signifie que l'attribut state_ux_restricted
doit également être superposé avec le RRO, afin que l'attribut défini dans le RRO corresponde à l'attribut défini dans l'application.
Recherche
La barre de recherche est contenue dans un fichier de mise en pagecar_ui_toolbar_search_view
distinct, afin d'améliorer les performances de gonflage de la mise en page pour les applications qui n'ont pas besoin de barre de recherche. Le FrameLayout
avec l'identifiant car_ui_toolbar_search_view_container
contiendra la barre de recherche lorsqu'elle sera gonflée.