5

Android Support Library v7 widget'ında oynatma CardView Bir Galaxy S4 cihazında Nexus 4 cihazıyla karşılaştırıldığında farklı sonuçlar görüyorum. Aşağıdaki düzeni olması:Farklı cihazlarda Android Destek Kitaplığı'nın CardView ürününün farklı sonuçları

Nexus 4 (5.0.1): enter image description here

Samsung Galaxy S4 (4.4.2):

<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/card_view" 
    android:layout_width="fill_parent" 
    android:layout_height="150dp" 
    android:layout_gravity="center" 
    android:layout_marginTop="8dp" 
    android:layout_marginBottom="10dp" 
    android:layout_marginLeft="20dp" 
    android:layout_marginRight="20dp" 
    android:orientation="horizontal" 
    card_view:cardCornerRadius="7dp" 
    card_view:cardElevation="12dp"> 

    <ScrollView 
     android:id="@+id/scrollView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentStart="true" 
     android:layout_centerVertical="true"> 

     <TextView 
      android:id="@+id/txtExample" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="@string/no_messages" /> 

    </ScrollView> 

</android.support.v7.widget.CardView> 

Ben bu sonuçları aldık enter image description here

Nexus'taki bu Görünüm, kenar boşlukları ile Görünümü hesaplar ve sonra gölgeyi dışarıya boyayar. Öte yandan, Samsung'un bir tanesi marjları uygulamakta ve ardından, hesaplanan View'in sınırlarına ulaşana kadar içindeki gölgeyi boyamaktadır.

Bir şey mi eksik?

cevap

8

Tüm gözlemler
Her şey resmi documentation of CardView üzerinde de açıklanmıştır :) doğru: L Önce

, CardView içeriğine dolgu ekler ve o bölgede gölgeler çizer. Bu dolgu miktarı, yanlarda ve üstte maksCardElevation + (1 - cos45) * cornerRadius ve üstte ve altta maxCardElevation * 1.5 + (1 - cos45) * cornerRadius'a eşittir.

ve: Eğer gölgelerin çünkü onun içerik alanı api kullanarak L. L öncesi ve sonrası platformlarda arasında farklı olacaktır, CardView için kesin boyutlarını belirtmek durumunda,

Not sürüm özel kaynak değerleri, bu değişikliklerden sakınabilirsiniz. Alternatif olarak, CardView'ı 'a isterseniz, L platformlarında ve sonra da iç dolgu eklerseniz, setUseCompatPadding (boolean) değerini true olarak ayarlayabilirsiniz. aynı olacaktır L ve öncesi L: - Orada anlatıldığı gibi

sadece hem setUseCompatPadding (true) sonra dış dolgu kullanmalıdır.

+0

Haklısınız Maciej! Şerefe – GoRoS

İlgili konular