2016-02-12 7 views
8

मैं एंड्रॉइड के लिए नया हूं और यह मेरा पहला सवाल है।कार्डव्यू पर रंगीन सीमा कैसे जोड़ें?

मैं कार्डव्यू की शुरुआत में एक रंगीन लंबवत सीमा जोड़ने की कोशिश कर रहा हूं। मैं इसे एक्सएमएल पर कैसे प्राप्त कर सकता हूं? मैंने इसे खाली टेक्स्टव्यू के साथ जोड़ने की कोशिश की लेकिन यह पूरे कार्डव्यू को गड़बड़ कर रहा है। उदाहरण के लिए नीचे पोस्ट किया गया चित्र लिंक देखें।

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> 

बहुत धन्यवाद

+0

क्या आपको यहां कार्डव्यू का उपयोग करने की आवश्यकता है? सिर्फ एक विमान लाइनरलेआउट के बारे में क्या है और आपके रीसाइक्लिंग व्यू में एक आइटम डिस्क्रिप्शन जोड़ रहा है? –

+0

मैं एंड्रॉइड पर एक नौसिखिया हूं और रीसाइक्लिंगव्यू मेरे इलाज कौशल सेट के लिए थोड़ा उन्नत है। तो, मैं यहां कार्डव्यू का उपयोग कर रहा हूं। –

+0

ठीक है, मैं –

उत्तर

15

कोशिश कर रही है:

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

इस cardview से गद्दी दूर करता है और एक के साथ एक FrameLayout कहते हैं col या। इसके बाद आप अन्य क्षेत्रों

अद्यतन के लिए तो LinearLayout में गद्दी को ठीक करने की जरूरत है

आप संरक्षित करने के लिए कार्ड कोने की त्रिज्या drawable फ़ोल्डर में card_edge.xml बनाने चाहते हैं:

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

और फ्रेम लेआउट में उपयोग android:background="@drawable/card_edge"

+0

@GeorgeForster कार्ड कोनों को बचाने के लिये एक drawable पृष्ठभूमि का उपयोग करने के लिए यदि आप अभी भी उन्हें –

+0

मेरे लिए काम नहीं किया करना चाहते हैं अद्यतन नीचे आपके लिए एक समाधान पोस्ट किया है। फ्रेम लेआउट के लिए 4 डीपी चौड़ाई क्यों? –

13

मुझे लगता है कि इस समाधान कुशल नहीं हो सकता है, लेकिन यह उद्देश्य में कार्य करता है और सीमा चौड़ाई के साथ लचीलापन कहते हैं।

<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

यह एक बुरा समाधान है। आप दृश्य पदानुक्रम स्तर जोड़ रहे हैं, जिसमें प्रदर्शन दंड होगा। – Sadegh

+0

हाँ सहमत हूँ, यह मेरे से सिर्फ एक आलसी समाधान था। – Amit

+0

अच्छा विचार है वहाँ उपलब्ध भीतरी सुविधाओं होना चाहिए – Sam

संबंधित मुद्दे