2016-02-12 17 views
8

Android için yeni ve buradaki ilk sorum bu.Kart görünümüne renkli kenarlık nasıl eklenir?

Kart görüntünün başında renkli dikey kenarlık eklemeye çalışıyorum. Xml'de nasıl elde edebilirim? Boş textview ile eklemeyi denedim ama tüm cardview'ın kendisini karıştırıyor. Lütfen aşağıda belirtilen resim bağlantısını kontrol edin.

Colored Border on Cardview

activity_main.xml

<android.support.v7.widget.CardView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    card_view:contentPadding="16dp" 
    card_view:cardElevation="2dp" 
    card_view:cardCornerRadius="5dp"> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 

     <TextView 
      style="@style/Base.TextAppearance.AppCompat.Headline" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="Title" /> 

     <TextView 
      style="@style/Base.TextAppearance.AppCompat.Body1" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="Content here" /> 

    </LinearLayout> 

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

çok teşekkürler

+0

Burada bir kart görüntüleme kullanmanız gerekiyor mu? Sadece düzlem lineer çıkışı ve geri dönüştürücü görünümünüze bir ItemDecoration ekleme ne olacak? –

+0

Android'de yeni başlayan biriyim ve geri dönüşümcül görüşüm, yetenekli yeteneklerim için biraz ilerlemiş. Yani, burada cardview kullanıyorum. –

+0

tamam, hala sizin için –

cevap

15

yapıyor deneyin: Bu cardview dolguyu kaldırır ve bir FrameLayout ekler

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    card_view:cardElevation="2dp" 
    card_view:cardCornerRadius="5dp"> 

    <FrameLayout 
     android:background="#FF0000" 
     android:layout_width="4dp" 
     android:layout_height="match_parent"/> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:padding="16dp" 
     android:orientation="vertical"> 

     <TextView 
      style="@style/Base.TextAppearance.AppCompat.Headline" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="Title" /> 

     <TextView 
      style="@style/Base.TextAppearance.AppCompat.Body1" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="Content here" /> 

    </LinearLayout> 

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

col veya. Daha sonra diğer alanlarda

Güncelleme için daha sonra LinearLayout içinde dolgu düzeltmek gerekir

kart köşe yarıçapı çekilebilir klasörde card_edge.xml oluşturmak korumak istiyorsanız:

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" > 
    <solid android:color="#F00" /> 
    <size android:width="10dp"/> 
    <padding android:bottom="0dp" android:left="0dp" android:right="0dp" android:top="0dp"/> 
    <corners android:topLeftRadius="5dp" android:bottomLeftRadius="5dp" 
     android:topRightRadius="0.1dp" android:bottomRightRadius="0.1dp"/> 
</shape> 

ve çerçeve düzeninde android:background="@drawable/card_edge"

+0

@GeorgeForster altında sizin için bir çözüm gönderdik. çerçeve düzeni için neden 4 dp genişliğinde? –

+0

benim için işe yaramadı istiyorsanız kart köşeleri korumak için çekilebilir bir arka plan kullanmak için güncellenmiş –

13

kullanın. Bu çözümün verimli olmayabileceğini düşünüyorum, ancak amaca hizmet ediyor ve kenar genişliği ile esneklik katıyor.

<android.support.v7.widget.CardView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_margin="40dp" 
    android:layout_gravity="center" 
    card_view:cardBackgroundColor="@color/some_color" 
    card_view:cardCornerRadius="20dp" 
    card_view:contentPadding="5dp"> <!-- Change it to customize the border width --> 

    <android.support.v7.widget.CardView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_gravity="center" 
     card_view:cardCornerRadius="20dp" 
     card_view:contentPadding="5dp"> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

     <!-- Add your UI elements --> 

     </RelativeLayout> 
    </android.support.v7.widget.CardView> 
</android.support.v7.widget.CardView> 
+4

Bu kötü bir çözümdür. Performans hükmüne sahip olacak görünüm hiyerarşisi seviyesini ekliyorsunuz. – Sadegh

+0

Evet katılıyorum, Bu sadece benim için tembel bir çözüm oldu. – Amit

+0

İyi bir fikir mevcut iç özellikler olmalıdır – Sam

İlgili konular