Android ListView विभाजक रेखा का रंग कैसे बदलें?


400

मैं ListViewविभाजक रेखा का रंग बदलना चाहता हूं । किसी भी सहायता की सराहना की जाएगी।

जवाबों:


765

आप इस मान को एक लेआउट xml फ़ाइल का उपयोग करके सेट कर सकते हैं android:divider="#FF0000"। यदि आप रंग / आकर्षित कर रहे हैं, तो आपको विभक्त की ऊँचाई को भी सेट / रीसेट करना होगा।

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">

  <ListView 
    android:id="@+id/android:list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:divider="#FFCC00"
    android:dividerHeight="4px"/>

</LinearLayout>

11
आपको किसी Drawableसंसाधन को भी निर्दिष्ट करने में सक्षम होना चाहिए android:divider। मौजूदा डिवाइडर एक ढाल है।
कॉमन्सवेयर

62
यदि आप इसे XML में करते हैं, तो यह सुनिश्चित करें कि ऊँचाई के साथ-साथ Android का उपयोग करके भी देखें: डिवाइडरहाइट अन्यथा आपको कोई पंक्ति नहीं मिलेगी
एरिक नोविंस

8
मेरे अनुभव से, "डिवाइडर की ऊँचाई को रीसेट करना चाहिए" को "डिवाइडर की ऊँचाई निर्धारित करना चाहिए"
dpjanes

44
मैं pxएंड्रॉइड में आकारों को परिभाषित करने के लिए यूनिट का उपयोग करने की सिफारिश नहीं करूंगा , dpइसके बजाय का उपयोग करें
मारेक सेबेरा

12
ऐसा लगता है कि इस विशिष्ट मामले में px का उपयोग करने का एक अच्छा कारण हो सकता है। देखें: stackoverflow.com/a/12061612/10505
greg7gkb

163

या आप इसे कोड कर सकते हैं:

int[] colors = {0, 0xFFFF0000, 0}; // red for the example
myList.setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors));
myList.setDividerHeight(1);

आशा है ये मदद करेगा


बिल्कुल सही, मेरे आइटम एक लाल रंग की ढाल पृष्ठभूमि पर थे और आपके प्रभाव ने उन्हें शानदार बना दिया !!
डार्ककॉन्ड

1
यदि आप ListActivity का विस्तार करते हैं, तो myList को getListView () के साथ बदलें
Aziz

87

एक रंग लाइन उपयोग के लिए:

list.setDivider(new ColorDrawable(0x99F10529));   //0xAARRGGBB
list.setDividerHeight(1);

यह महत्वपूर्ण है कि डिवाइडर को डिवाइडर के बाद सेट किया गया है , अन्यथा आपको कुछ भी नहीं मिलेगा।


1
धन्यवाद, मैंने setDividerHeight () setDivider () से पहले कॉल किया और कोई विभक्त नहीं दिखाया गया।
एंड्रियास क्लोबेर

3
संचालन के क्रम के बारे में बहुत उपयोगी टिप्पणी। मैंने इसे काम करने के लिए सिर्फ 2 घंटे का समय दिया। अच्छा डिजाइन, Android।
निक फ्रलोव

12

आप अपने संसाधनों से रंगों का उपयोग करके भी प्राप्त कर सकते हैं:

dateView.setDivider(new ColorDrawable(_context.getResources().getColor(R.color.textlight)));
dateView.setDividerHeight(1);

10

@Asher असलान शांत प्रभाव के लिए XML संस्करण।

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <gradient
        android:angle="180"
        android:startColor="#00000000"
        android:centerColor="#FFFF0000"
        android:endColor="#00000000"/>

</shape>

उस आकार का नाम इस प्रकार है: list_driver.xml ड्रॉबल फ़ोल्डर के अंतर्गत

<ListView
        android:id="@+id/category_list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" 
        android:divider="@drawable/list_driver"
        android:dividerHeight="5sp" />

6

ऐसा करने के दो तरीके हैं:

  1. आप एंड्रॉइड का मान सेट कर सकते हैं : लेआउट xml फ़ाइल में विभक्त = "# FFCCFF" । इसके साथ आपको इस एंड्रॉइड की तरह डिवाइडर की ऊंचाई भी निर्दिष्ट करनी होगी : डिवाइडराइट = "5 पीएक्स "।

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    
      <ListView 
      android:id="@+id/lvMyList"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:divider="#FFCCFF"
      android:dividerHeight="5px"/>
    
    </LinearLayout>
  2. आप इसे प्रोग्रामेटिक रूप से भी कर सकते हैं ...

    ListView listView = getListView();
    ColorDrawable myColor = new ColorDrawable(
        this.getResources().getColor(R.color.myColor)
    );
    listView.setDivider(myColor);
    listView.setDividerHeight();

2

अपनी xml फ़ाइल में नीचे दिए गए कोड का उपयोग करें

<ListView 
    android:id="@+id/listView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:divider="#000000" 
    android:dividerHeight="1dp">
</ListView> 

2
आपका समाधान क्यों काम करता है, इसके बारे में थोड़ा स्पष्ट करना सबसे अच्छा है। कोड केवल उत्तर को ठीक कर सकता है, लेकिन यह आवश्यक रूप से प्रश्नकर्ता के प्रश्न का उत्तर नहीं देता है।
सुपरबाइडमैन

1

प्रोग्रामेटिक रूप से उपयोग करना

           // Set ListView divider color
            lv.setDivider(new ColorDrawable(Color.parseColor("#FF4A4D93")));

            // set ListView divider height
            lv.setDividerHeight(2);

xml का उपयोग कर

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">

  <ListView 
    android:id="@+id/android:list"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:divider="#44CC00"
    android:dividerHeight="4px"/>

</LinearLayout>

0

ListView का उपयोग करें android:divider="#FF0000"और उसके android:dividerHeight="2px"लिए।

<ListView 
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:divider="#0099FF"
android:dividerHeight="2px"/>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.