CarUiRecyclerView anpassen

Auf dieser Seite werden das Anpassen von CarUiRecyclerView und das Scrollen beschrieben. .

Voraussetzungen

Für diese Seite wird vorausgesetzt, dass Sie ein RRO-Ziel-APK (Laufzeitressourcen-Overlay) kennen. Weitere Informationen Weitere Informationen finden Sie unter Apps anpassen.

Über CarUiRecyclerView

Wenn car_ui_scrollbar_enable in bools.xml auf false gesetzt ist, gilt Folgendes: Mit CarUiRecyclerView wird die Bildlaufleiste nicht aufgebläht. Allerdings werden nur die androidx.recyclerview wird durch die unten definierten anpassbaren Stile aufgebläht. Wenn car_ui_scrollbar_enable auf true gesetzt ist, gilt Folgendes: „CarUiRecyclerView“ bläht den Container mit installierter Bildlaufleiste auf darin enthalten sind. Später wird androidx.recyclerview ebenfalls im selben Container.

CarUiRecyclerView kann einen beliebigen Adapter verwenden, um die Daten anzuzeigen. Die Es wird empfohlen, CarUiListItemAdapter zu verwenden, wobei die Chassis-Bibliothek die für listItems erstellen und somit von OEMs anpassen. Die Anpassung für ListItems werden in der Anpassung Optionen für „CarUiListItem“.

Standardmäßig wird car_ui_scrollbar_margin als Breite der Bildlaufleistenansicht verwendet. Diese Marge wird auch als android:endMargin von CarUiRecyclerView hinzugefügt, damit haben am Anfang und am Ende der Daten die gleiche Marge. Wenn der Entwickler enableDivider=true dann kann der OEM festlegen, wie die Trennlinien dargestellt werden sollen. Folgende Abmessungen können für CarUiRecyclerView angepasst werden:

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

Bildlaufleiste

<ph type="x-smartling-placeholder">

Die Layoutdatei für die Bildlaufleiste „CarUiRV“ ist definiert in car_ui_recyclerview_scrollbar.xml. Insgesamt sind diese vier Aufrufe die in der Ansicht definiert sind:

Aufrufe
Car_ui_scrollbar_page_up Definiert die Schaltfläche „Nach oben“ der Bildlaufleiste.
Car_ui_scrollbar_page_down definiert die Schaltfläche „Nach unten“ der Bildlaufleiste.
Car_ui_scrollbar_thumb Die Höhe wird dynamisch berechnet, und zwar abhängig von der Anzahl der Listenelemente im Recycler View (RV)
Car_ui_scrollbar_track Gesamthöhe, die die Grenzen definiert, innerhalb derer sich der Daumen bewegt.

OEMs sollten diese Layoutdatei überlagern, um die Bildlaufleiste anzupassen. Track-Ansicht sollte vorsichtig platziert werden, da dies die Grenzen definieren würde, innerhalb derer sich der Daumen bewegt. Die Daumenhöhe wird dynamisch anhand der Listenelemente im Wohnmobil und der Höhe berechnet. der Ansichtsträger.

Dieses Layout ist im Container CarUiRV enthalten car_ui_recycler_view.xml nur wenn car_ui_scrollbar_enable ist true.

Weitere Abmessungen, die für die Bildlaufleiste angepasst werden können, sind:

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

Beispiel

So blenden Sie beispielsweise den Aufwärts- und den Abwärtspfeil am unteren Bildschirmrand zusammen:

  1. Overlay-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>
    
  2. Fügen Sie Overlays.xml hinzu, um die Ressourcen zu definieren, die von der RRO überlagert werden sollen:
    <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>
    
  3. Wenn ein Drawable nach oben, unten oder mit dem Daumen aktualisiert werden muss, sollten diese ebenfalls überlagert werden.
  4. Wenn im RRO-Paket neue Ressourcen verwendet werden, die noch nicht vorhanden sind, Diese Ressourcen sollten auch in dem von Ihnen erstellten RRO-APK definiert sein.