Cette page décrit le processus de personnalisation de CarUiRecyclerView
et du défilement.
sur la barre d'adresse.
Prérequis
Cette page suppose que vous connaissez un APK cible de superposition de ressources d'exécution (RRO). Pour apprendre En savoir plus, consultez l'article Personnaliser les applications.
À propos de CarUiRecyclerView
Lorsque car_ui_scrollbar_enable
est défini sur false
dans bools.xml
,
CarUiRecyclerView
ne gonfle pas la barre de défilement. Ceci dit, seuls les
androidx.recyclerview
est gonflé à l'aide de styles personnalisables, comme indiqué ci-dessous.
Lorsque car_ui_scrollbar_enable
est défini sur true
,
CarUiRecyclerView
gonfle le conteneur avec la barre de défilement installée
qu'il contient. androidx.recyclerview
plus tard est également ajouté dans le même
conteneur.
CarUiRecyclerView
peut utiliser n'importe quel adaptateur pour afficher les données. Toutefois,
il est recommandé d'utiliser CarUiListItemAdapter
, où la bibliothèque de châssis définit le
pour listItems. Les OEM peuvent donc la personnaliser. Personnalisation de ListItems
sont définis dans la section Personnalisation
pour CarUiListItem.
Par défaut, car_ui_scrollbar_margin
est utilisé comme largeur de la barre de défilement.
Cette marge est également ajoutée en tant que android:endMargin
de CarUiRecyclerView afin
il y a une marge égale
au début et à la fin des données. Si le développeur avait utilisé
enableDivider=true
, l'OEM peut alors contrôler l'affichage des séparateurs.
Voici les dimensions pouvant être ajustées pour CarUiRecyclerView
:
<dimen name="car_ui_recyclerview_divider_height">0dp</dimen> <dimen name="car_ui_recyclerview_divider_start_margin">0dp</dimen> <dimen name="car_ui_recyclerview_divider_end_margin">0dp</dimen> <dimen name="car_ui_recyclerview_divider_top_margin">0dp</dimen> <dimen name="car_ui_recyclerview_divider_bottom_margin">0dp</dimen>
Barre de défilement
<ph type="x-smartling-placeholder">Le fichier de mise en page pour la barre de défilement CarUiRV
est défini dans
car_ui_recyclerview_scrollbar.xml
Au total, ces quatre vues sont
définies dans la vue:
Vues | |
---|---|
Car_ui_scrollbar_page_up |
Définit le bouton "Haut" de la barre de défilement. |
Car_ui_scrollbar_page_down |
définit le bouton vers le bas de la barre de défilement. |
Car_ui_scrollbar_thumb |
La hauteur est calculée de façon dynamique en fonction du nombre d'éléments de la liste dans Recycler View (RV). |
Car_ui_scrollbar_track |
Hauteur totale définissant les limites de déplacement du curseur. |
Les OEM doivent superposer ce fichier de mise en page pour personnaliser la barre de défilement. La vue de piste doit être de façon à définir les limites de mouvement du pouce. La hauteur du pouce est calculée dynamiquement en fonction des éléments de la liste du camping-car et de la hauteur des lecteurs.
Cette mise en page est incluse dans le conteneur CarUiRV
car_ui_recycler_view.xml
uniquement si car_ui_scrollbar_enable
est true
.
Les autres dimensions pouvant être ajustées pour la barre de défilement sont les suivantes:
<dimen name="car_ui_scrollbar_container_width">@dimen/car_ui_margin</dimen> <dimen name="car_ui_scrollbar_button_size">@dimen/car_ui_touch_target_width</dimen> <dimen name="car_ui_scrollbar_thumb_width">7dp</dimen> <dimen name="car_ui_scrollbar_separator_margin">16dp</dimen> <dimen name="car_ui_scrollbar_margin">@dimen/car_ui_margin</dimen> <dimen name="car_ui_scrollbar_thumb_radius">100dp</dimen> <item name="car_ui_button_disabled_alpha" format="float" type="dimen">0.2</item> <item name="car_ui_scrollbar_milliseconds_per_inch" format="float" type="dimen">150.0</item> <item name="car_ui_scrollbar_deceleration_times_divisor" format="float" type="dimen">0.45</item> <item name="car_ui_scrollbar_decelerate_interpolator_factor" format="float" type="dimen">1.8</item> <dimen name="car_ui_scrollbar_padding_start">0dp</dimen> <dimen name="car_ui_scrollbar_padding_end">0dp</dimen>
Exemple
Par exemple, pour rassembler les flèches vers le haut et vers le bas en bas de l'écran:
- Superposition
car_ui_recyclerview_scrollbar.xml
:<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="@dimen/car_ui_margin" android:layout_height="match_parent" android:id="@+id/car_ui_scroll_bar"> <!-- View height is dynamically calculated during layout. --> <View android:id="@+id/car_ui_scrollbar_thumb" android:layout_width="7dp" android:layout_height="20dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:background="@drawable/car_ui_recyclerview_scrollbar_thumb"/> <View android:id="@+id/car_ui_scrollbar_track" android:layout_width="10dp" android:layout_height="match_parent" android:layout_marginTop="10dp" android:layout_centerHorizontal="true" android:layout_above="@+id/car_ui_scrollbar_page_up"/> <ImageView android:id="@+id/car_ui_scrollbar_page_up" android:layout_width="76dp" android:layout_height="76dp" android:focusable="false" android:hapticFeedbackEnabled="false" android:src="@drawable/car_ui_recyclerview_ic_up" android:scaleType="centerInside" android:layout_centerHorizontal="true" android:layout_above="@+id/car_ui_scrollbar_page_down"/> <ImageView android:id="@+id/car_ui_scrollbar_page_down" android:layout_width="76dp" android:layout_height="76dp" android:focusable="false" android:hapticFeedbackEnabled="false" android:src="@drawable/car_ui_recyclerview_ic_down" android:scaleType="centerInside" android:layout_centerHorizontal="true" android:layout_alignParentBottom="true"/> </RelativeLayout>
- Pour définir les ressources que la RRO doit superposer, ajoutez
Overlays.xml
:<overlay> <item target="id/car_ui_scroll_bar" value="@id/car_ui_scroll_bar"/> <item target="id/car_ui_scrollbar_thumb" value="@id/car_ui_scrollbar_thumb"/> <item target="id/car_ui_scrollbar_track" value="@id/car_ui_scrollbar_track"/> <item target="id/car_ui_scrollbar_page_up" value="@id/car_ui_scrollbar_page_up"/> <item target="id/car_ui_scrollbar_page_down" value="@id/car_ui_scrollbar_page_down"/> <item target="layout/car_ui_recyclerview_scrollbar" value="@layout/car_ui_recyclerview_scrollbar"/> </overlay>
- Si vous devez mettre à jour un élément drawable vers le haut, le bas ou le curseur, vous devez également les superposer.
- Si de nouvelles ressources qui n'existent pas encore sont utilisées dans le package RRO, ces ressources doivent également être définies dans l'APK RRO que vous créez.