2014-11-18 16 views
77

Anladığım kadarıyla, önizleme aşamasında, XML'de yalnızca CardView s'de Java'da bir hack olmadan yükseltmenin ayarlanmasının bir yolu olmadığı anlaşılıyor. Şimdi resmi sürüm çıktı, şimdi yükseltmek için Java kodu yazmadan XML'de bunu yapmanın herhangi bir yolu var mı?AppCompat CardView üzerinde XML'de Yükseklik Ayarlama 5.0 5.0

card_view:cardElevation'u hiçbir şekilde denemedim. 5.0 için emülatörleri kullandığımı düşündüm, her şey yolundaydı. Ama şimdi benim gerçek cihaz üzerinde resmi sürümü kullanıyorum tüm benim CardView s

Pre Lollipop kayboldu, harika çalışıyor.

Burada Sen true cardUseCompatPadding özelliğini ayarlamak için deneyin bir marj/dolgu sorunu gibi görünüyor cardElevation Özellik

<android.support.v7.widget.CardView 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    card_view:cardElevation="4dp" /> 
+0

Sorunun arkasına baktım ama henüz bir yanıt almadım. Lollipop'a geçtiğimde, bir şekilde kenar boşlukları veya dolgu kayboldu, böylece kartın köşelerini veya kenarlarını görmezler, böylece tamamen düzdür. – KickingLettuce

cevap

261

kullanmak zorunda benim tam xml

<?xml version="1.0" encoding="utf-8"?> 
<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:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:id="@+id/cv1" 
    card_view:cardElevation="4dp" 
    android:layout_margin="6dp" 
    card_view:cardCornerRadius="3dp" 
    android:layout_height="match_parent"> 
9

olduğunu. Örn: Android dokümanınızdan

<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:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_margin="6dp" 
    card_view:cardUseCompatPadding="true" 
    card_view:cardElevation="4dp" 
    card_view:cardCornerRadius="3dp"> 

Açıklama:

CardView Bu L arasında ve L daha önce farklı boyutlarda olması Kartları neden olabilir önce L.

platformlarda gölgeleri çizmek için ek dolgu ekler CardView'ı diğer Görünümlerle hizalamanız gerekiyorsa, değişiklikleri dikkate almak için api sürümüne özgü boyut kaynaklarına gereksinim duyabilirsiniz. Bir alternatifi olarak, cardUseCompatPadding bayrağını true olarak ayarlayabilir ve CardView, L ve sonrasında platformlarda aynı dolgu değerlerini ekleyecektir.

cardUseCompatPadding bayrağının true değerine ayarlanması, kullanıcı arabiriminde gereksiz boşluklar eklediğinden, varsayılan değer yanlıştır.

+0

Yukarıda bir yazım hatası yaptığımı ve denediğim şey olduğuna inanıyorum. Tekrar deneyeceğim ... – KickingLettuce

+1

Hayır Tekrar denedim ve bu işe yaramadı. Tam xml'imi ekledim. – KickingLettuce

+0

Benim için çalışıyor. Varsayılan yükseklik nedir? –

10

sen apaçık uygulama etiketinde bu satırı

android:hardwareAccelerated="false" 

senin gölgeleri görüntülenmedi varsa. Bu hat

kaldırmak veya

android:hardwareAccelerated="true" 
Bu benim için çalıştı

kullanmayı deneyin! card_view = "http://schemas.android.com/apk/res-auto"

örneğin: Bence de sizin için çalışan :)

+0

Evet! Bu sorun oldu! çok teşekkür ederim! ama arka plan için kullandığım bitmap görüntüsü nedeniyle değil, uygulama yavaşladı :( – Kaushal28

0

O

xmlns ekleyerek beni çözdü umut:

<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:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="5dp" 
    android:layout_marginLeft="5dp" 
    android:layout_marginRight="5dp" 
    card_view:cardCornerRadius="5dp">