खोज…


परिचय

एक गोल कोने की पृष्ठभूमि और छाया के साथ एक फ्रेम -आउट।

CardView छाया के लिए लॉलीपॉप पर उन्नयन की संपत्ति का उपयोग करता है और पुराने प्लेटफार्मों पर एक कस्टम इम्यूलेटेड छाया कार्यान्वयन पर वापस आता है।

लॉलीपॉप से पहले प्लेटफार्मों पर गोल कोने की कतरन की महंगी प्रकृति के कारण, कार्डव्यू अपने बच्चों को क्लिप नहीं करता है जो गोल कोनों के साथ प्रतिच्छेद करते हैं। इसके बजाय, यह इस तरह के चौराहे से बचने के लिए पैडिंग जोड़ता है (इस व्यवहार को बदलने के लिए setPreventCornerOverlap (बूलियन) देखें)।

पैरामीटर

पैरामीटर विवरण
cardBackgroundColor CardView के लिए पृष्ठभूमि का रंग।
cardCornerRadius CardView के लिए कॉर्नर त्रिज्या।
cardElevation CardView के लिए ऊंचाई।
cardMaxElevation CardView के लिए अधिकतम ऊंचाई।
cardPreventCornerOverlap कार्ड सामग्री और गोल कोनों के बीच चौराहों को रोकने के लिए v20 पर और पहले कार्ड व्यू में पैडिंग जोड़ें।
cardUseCompatPadding एपीआई v21 + में पैडिंग जोड़ें और साथ ही पिछले संस्करणों के साथ माप करें। एक बूलियन मान हो सकता है, जैसे "सच" या "गलत"।
contentPadding कार्ड के किनारों और कार्ड व्यू के बच्चों के बीच इनर पैडिंग।
contentPaddingBottom कार्ड के निचले किनारे और कार्ड व्यू के बच्चों के बीच इनर पैडिंग।
contentPaddingLeft कार्ड के बाएं किनारे और कार्ड व्यू के बच्चों के बीच इनर पैडिंग।
contentPaddingRight CardView के लिए ऊंचाई।
cardElevation कार्ड के दाएं किनारे और कार्ड व्यू के बच्चों के बीच इनर पैडिंग।
contentPaddingTop कार्ड के शीर्ष किनारे और कार्ड व्यू के बच्चों के बीच इनर पैडिंग।

टिप्पणियों

CardView लॉलीपॉप (एपीआई 21) और इसके बाद के संस्करण पर वास्तविक ऊंचाई और गतिशील छाया का उपयोग करता है। हालाँकि, इससे पहले कि लॉलीपॉप CardView एक प्रोग्रामेटिक शैडो कार्यान्वयन पर वापस आ जाए।

यदि एक CardView के गोल कोनों के भीतर एक ImageView फिट करने की कोशिश कर रहा है, तो आप यह देख सकते हैं कि यह सही पूर्व-लॉलीपॉप (API 21) नहीं दिखता है। इसे ठीक करने के लिए आपको अपने CardView पर setPreventCornerOverlap(false) को कॉल करना चाहिए, या अपने लेआउट में app:cardPreventCornerOverlap="false" जोड़ें app:cardPreventCornerOverlap="false"

CardView का उपयोग करने से पहले आपको build.gradle फ़ाइल में समर्थन लाइब्रेरी निर्भरता को जोड़ना होगा:

dependencies{
    compile 'com.android.support:cardview-v7:25.2.0'
}

नवीनतम संस्करण का एक नंबर यहां पाया जा सकता है

आधिकारिक दस्तावेज:

https://developer.android.com/reference/android/support/v7/widget/CardView.html https://developer.android.com/training/material/lists-cards.html

CardView के साथ शुरू हो रही है

CardView Android समर्थन लाइब्रेरी का एक सदस्य है, और कार्ड के लिए एक लेआउट प्रदान करता है।

अपने प्रोजेक्ट में CardView जोड़ने के लिए, अपनी build.gradle निर्भरता के लिए निम्न पंक्ति जोड़ें।

compile 'com.android.support:cardview-v7:25.1.1'

नवीनतम संस्करण का एक नंबर यहां पाया जा सकता है

अपने लेआउट में फिर आप कार्ड प्राप्त करने के लिए निम्नलिखित जोड़ सकते हैं।

<android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <!-- one child layout containing other layouts or views -->     

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

फिर आप इसके अंदर अन्य लेआउट जोड़ सकते हैं और उन्हें एक कार्ड में शामिल किया जाएगा।

इसके अलावा, CardView को किसी भी UI तत्व से पॉप्युलेट किया जा सकता है और कोड से जोड़-तोड़ किया जा सकता है।

<?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:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/card_view"
    android:layout_margin="5dp"
    card_view:cardBackgroundColor="#81C784"
    card_view:cardCornerRadius="12dp"
    card_view:cardElevation="3dp"
    card_view:contentPadding="4dp" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="16dp" >

        <ImageView
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:id="@+id/item_image"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:layout_marginRight="16dp"
            />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/item_title"
            android:layout_toRightOf="@+id/item_image"
            android:layout_alignParentTop="true"
            android:textSize="30sp"
            />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/item_detail"
            android:layout_toRightOf="@+id/item_image"
            android:layout_below="@+id/item_title"
            />

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

कार्ड व्यू को कस्टमाइज़ करना

CardView एक डिफ़ॉल्ट ऊंचाई और कोने की त्रिज्या प्रदान करता है ताकि कार्डों में प्लेटफार्मों पर एक समान उपस्थिति हो।

आप इन डिफ़ॉल्ट मानों को xml फ़ाइल में इन विशेषताओं का उपयोग करके अनुकूलित कर सकते हैं:

  1. card_view:cardElevation विशेषता, CardView में उन्नयन को बढ़ाती है।
  2. card_view:cardBackgroundColor विशेषता का उपयोग कार्डव्यू की पृष्ठभूमि के पृष्ठभूमि के रंग को अनुकूलित करने के लिए किया जाता है (आप कोई भी रंग दे सकते हैं)।
  3. card_view:cardCornerRadius विशेषता का उपयोग कार्ड व्यू के 4 किनारों को वक्र करने के लिए किया जाता है
  4. card_view:contentPadding विशेषता कार्ड और कार्ड के बच्चों के बीच पैडिंग जोड़ते हैं

नोट: card_view एक ऐसा नामस्थान है जिसे सबसे ऊपरी मूल लेआउट दृश्य में परिभाषित किया गया है। xmlns: card_view = " http://schemas.android.com/apk/res-auto "

यहाँ एक उदाहरण है:

<android.support.v7.widget.CardView
        xmlns:card_view="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        card_view:cardElevation="4dp"
        card_view:cardBackgroundColor="@android:color/white"
        card_view:cardCornerRadius="8dp"
        card_view:contentPadding="16dp">

        <!-- one child layout containing other layouts or views -->     

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

आप इसे प्रोग्रामेटिक रूप से उपयोग करके भी कर सकते हैं:

card.setCardBackgroundColor(....);
card.setCardElevation(...);
card.setRadius(....);
card.setContentPadding();

अतिरिक्त गुणों के लिए आधिकारिक javadoc की जाँच करें।

लहर एनीमेशन जोड़ना

एक CardView में लहर एनीमेशन को सक्षम करने के लिए, निम्नलिखित विशेषताएं जोड़ें:

<android.support.v7.widget.CardView
  ...
  android:clickable="true"
  android:foreground="?android:attr/selectableItemBackground">
  ...
</android.support.v7.widget.CardView>

कार्डव्यू में पृष्ठभूमि के रूप में छवियों का उपयोग करना (प्री-लॉलीपॉप डिवाइस समस्याएं)

कार्डव्यू में पृष्ठभूमि के रूप में छवि / रंग का उपयोग करते समय, आप किनारों पर थोड़े सफेद पैडिंग (यदि डिफ़ॉल्ट कार्ड का रंग सफेद है) के साथ समाप्त हो सकते हैं। यह कार्ड दृश्य में डिफ़ॉल्ट गोल कोनों के कारण होता है। यहां बताया गया है कि प्री-लॉलीपॉप डिवाइस में उन मार्जिन से कैसे बचा जाए।

हमें एक विशेषता card_view:cardPreventCornerOverlap="false" का उपयोग करने की आवश्यकता है। 1)। XML में निम्न स्निपेट का उपयोग करें।

<android.support.v7.widget.CardView
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    card_view:cardPreventCornerOverlap="false"
    android:layout_height="wrap_content"> 
      <ImageView
            android:id="@+id/row_wallet_redeem_img"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:adjustViewBounds="true"
            android:scaleType="centerCrop"
            android:src="@drawable/bg_image" />

</android.support.v7.widget.CardView>
  1. जावा में इस तरह cardView.setPreventCornerOverlap(false)

ऐसा करने से कार्ड के किनारों पर एक अवांछित गद्दी निकल जाती है। इस कार्यान्वयन से संबंधित कुछ दृश्य उदाहरण यहां दिए गए हैं।

एपीआई 21 में छवि पृष्ठभूमि के साथ 1 कार्ड (पूरी तरह से ठीक) एपीआई 21 में छवि पृष्ठभूमि के साथ कार्ड

2 बिना विशेषता के एपीआई 19 में छवि पृष्ठभूमि के साथ कार्ड (छवि के चारों ओर पैडिंग देखें) विशेषता के बिना एपीआई 19 में छवि पृष्ठभूमि के साथ कार्ड

एपीआई कार्ड 19 में इमेज कार्ड के साथ 3 फिक्स्ड कार्ड विशेषता cardView.setPreventCornerOverlap(false) (अब जारी किया गया मुद्दा) के साथ विशेषता के साथ एपीआई 19 में छवि पृष्ठभूमि के साथ फिक्स्ड कार्ड

इसके बारे में डॉक्यूमेंटेशन पर यहां भी पढ़ें
मूल SOF पोस्ट यहाँ

TransDDable के साथ चेतन कार्ड व्यू पृष्ठभूमि रंग

public void setCardColorTran(CardView card) {
    ColorDrawable[] color = {new ColorDrawable(Color.BLUE), new ColorDrawable(Color.RED)};
    TransitionDrawable trans = new TransitionDrawable(color);
    if(Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
        card.setBackground(trans);
    } else {
        card.setBackgroundDrawable(trans);
    }
    trans.startTransition(5000);
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow