Bu sayfadaCarUiRecyclerView
ve kaydırmayı özelleştirme süreci açıklanmaktadır
çubuk.
Ön koşullar
Bu sayfada bir çalışma zamanı kaynak yer paylaşımı (RRO) hedef APK'sının bilindiği varsayılmıştır. Öğrenmek için daha fazla bilgi için Uygulamaları özelleştirme bölümüne bakın.
CarUiRecyclerView hakkında
car_ui_scrollbar_enable
, bools.xml
içinde false
olarak ayarlandığında
CarUiRecyclerView
, kaydırma çubuğunu artırmaz. Bununla birlikte,
androidx.recyclerview
, aşağıda tanımlanan özelleştirilebilir stillerle şişirilmiş.
car_ui_scrollbar_enable
, true
olarak ayarlandığında
CarUiRecyclerView
, kaydırma çubuğu yüklü kapsayıcıyı şişirir
bir bilgidir. Daha sonra androidx.recyclerview
, aynı
emin olun.
CarUiRecyclerView
, verileri görüntülemek için herhangi bir bağdaştırıcıyı alabilir. Ancak
CarUiListItemAdapter
kullanılması önerilir. Burada şasi kitaplığı
listItems için düzen oluşturur ve dolayısıyla OEM'ler tarafından özelleştirilebilir. ListItems için özelleştirme
Özelleştirme
CarUiListItem için seçenekler.
Varsayılan olarak, kaydırma çubuğu görünümünün genişliği olarak car_ui_scrollbar_margin
kullanılır.
Bu kenar boşluğu, CarUiRecyclerView'a android:endMargin
olarak da eklendiğinden
verilerin başında ve sonunda
eşit bir marj bulunduğunu unutmayın. Geliştirici,
enableDivider=true
, OEM ayırıcıların nasıl görünmesi gerektiğini kontrol edebilir.
CarUiRecyclerView
için düzenlenebilecek boyutlar şunlardır:
<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>
Kaydırma çubuğu
CarUiRV
kaydırma çubuğu için düzen dosyası şurada tanımlanır:
car_ui_recyclerview_scrollbar.xml
. Bu dört görünüm toplamda
görünüm içinde tanımlanır:
Görüntüleme sayısı | |
---|---|
Car_ui_scrollbar_page_up |
Kaydırma çubuğunun yukarı düğmesini tanımlar. |
Car_ui_scrollbar_page_down |
kaydırma çubuğunun aşağı düğmesini tanımlar. |
Car_ui_scrollbar_thumb |
Yükseklik, açılır menüdeki liste öğelerinin sayısına bağlı olarak, Recycler View (Karavan) seçeneğini tıklayın. |
Car_ui_scrollbar_track |
Başparmağın hareket edeceği sınırları tanımlayan toplam yükseklik. |
Kaydırma çubuğunu özelleştirmek için OEM'ler bu düzen dosyasını yer paylaşımlı olarak kullanmalıdır. Parça görünümü başparmağın hareket edeceği sınırları belirleyecek şekilde dikkatli bir şekilde yerleştirilmelidir. Küçük resim yüksekliği, karavandaki liste öğelerine ve yüksekliğine göre dinamik olarak hesaplanır uzlaşmaya vardık.
Bu düzen, CarUiRV
kapsayıcısına dahil
car_ui_recycler_view.xml
yalnızca car_ui_scrollbar_enable
true
.
Kaydırma çubuğu için ayarlanabilecek diğer boyutlar şunlardır:
<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>
Örnek
Örneğin, ekranın alt kısmında hem Yukarı hem de Aşağı oku bir araya getirmek için:
- Yer paylaşımı
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>
- DOO'nun yer alacağı kaynakları tanımlamak için
Overlays.xml
ekleyin:<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>
- Yukarı, aşağı veya baş parmakla çekilebilir öğelerin güncellenmesi gerekiyorsa bunlar da yer paylaşımlı olarak kullanılmalıdır.
- RRO paketinde henüz mevcut olmayan yeni kaynaklar kullanılırsa bu kaynaklar, oluşturduğunuz RRO APK'sında da tanımlanmalıdır.