Android ListView का निचला डिवाइडर निकालें


94

मेरी एक निश्चित ऊंचाई है ListView। इसमें सूची आइटम के बीच विभक्त है, लेकिन यह अंतिम सूची आइटम के बाद डिवाइडर भी प्रदर्शित करता है।

क्या अंतिम आइटम के बाद डिवाइडर प्रदर्शित नहीं करने का कोई तरीका है ListView?

जवाबों:


183

बस android:footerDividersEnabled="false" अपने ListView विवरण में जोड़ें


29
यह 4.4.2 से शुरू होने वाला काम नहीं है। मैं सचमुच अपने कई परीक्षण उपकरणों (2.3.7 से 4.4.2 तक सभी तरह से) और किटकैट केवल एक ही ऐप चला सकता हूं, जहां ऐसा लगता है कि इसका कोई प्रभाव नहीं है ... कोई विचार? मैं अपने ListView में पाद लेख या शीर्षलेख नहीं जोड़ रहा हूं और मैंने इसे दो उपकरणों (Nexus 5 और HTC One M8) पर पुन: पेश किया है।
चार्ल्स मैडरे

11
@ScootrNova मैं 4.4.4 का उपयोग कर रहा हूं, और जब मैं सूची का सेट करता हूं layoutHeight="wrap_content", तो नीचे का विभाजक गायब हो जाता है।
एरहनीस

1
पृष्ठभूमि का उपयोग करें = @android: रंग / पारदर्शी, इसे मेरे लिए हल किया
stef

Android 5.1 और 7.0 पर इस समाधान की कोशिश की और यह पूरी तरह से काम करता है! धन्यवाद दोस्त।
tomalf2

83

जैसा कि @ScootrNova ने कहा, यह एंड्रॉइड 4.4.x में अलग तरह से (उर्फ बग्गी) व्यवहार कर रहा है (मुझे नहीं पता कि समस्या कब पेश की गई है)

यह विशिष्ट से संबंधित है का उपयोग कर का उपयोग कर के मामले padding+ clipToPadding="false"- 4.4.x में पाद लेख गद्दी को देखने के बाहर लेकिन क्लिप तैयार की है यह पता चलता है।

मैंने जो समाधान किया था, वह फूटर ओवर-स्क्रॉल सेट करने के लिए था (android:overScrollFooter ) को पारदर्शी जो किसी भी तरह काम करता है ...

मेरा अंतिम समाधान (नोट जो android:footerDividersEnabledसंगतता के लिए रखा गया है):

<ListView
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="@dimen/activity_horizontal_margin"
    android:divider="@color/divider"
    android:dividerHeight="1px"
    android:clipToPadding="false"
    android:scrollbarStyle="outsideInset"
    android:overScrollFooter="@android:color/transparent"
    android:footerDividersEnabled="false"
    />

एचटीसी वन एक्स पर 4.1.1, नेक्सस 5 पर 4.4.4 और सैमसंग गैलेक्सी एस 5 में 4.4.2 रनिंग (@ डैलस 1818 पर चलने वाला) का परीक्षण किया गया। लगता है लॉलीपॉप भी काम कर रहा है। (टिप्पणीकारों को धन्यवाद!)


1
इस समाधान की पुष्टि करते हुए सैमसंग गैलेक्सी एस 5 पर काम करता है 4.4.2
डलास 187

1
जोड़ना android:overScrollFooterमेरे लिए चाल है। 5.0.2 और 5.1 पर कार्य करना।
एडिसन स्पेंसर

वास्तव में, और मुझे विश्वास है कि आपको android:footerDividersEnabled="false"वापस कॉम्पिटिटर की आवश्यकता होगी
सैम

18

यदि आप इसे कोड के अनुसार करना चाहते हैं:

listView.setFooterDividersEnabled(false);

और यदि आप एक ListFragment का उपयोग कर रहे हैं, तो आप इसके द्वारा सूची प्राप्त कर सकते हैं:

listFragment.getListView().setFooterDividersEnabled(false);

केवल टिप्पणी की क्योंकि यह google में # 1 के रूप में आता है


2
कोड के लिए धन्यवाद - मुझे दुख होता है जब केवल XML आधारित समाधान होते हैं! मैं आईओएस से एंड्रॉइड पर एक ऐप पोर्ट कर रहा हूं, और अब तक मुझे लगता है कि कोड में यह सब करना बहुत तेज था, अगर मुझे इसे एक्सएमएल आधारित लेआउट में बदलने की कोशिश की गई थी (जैसा कि मैंने पहली बार कोड में सभी आईओएस यूआई को परिभाषित किया था। )। मुझे लगता है कि एक दिन मुझे इस एक्सएमएल सामान के चारों ओर अपना सिर प्राप्त करना होगा, लेकिन आज नहीं :)
हेर ग्रंप्स

Pixel API 25 पर मेरे लिए काम नहीं करना, केवल अन्नदा का सुझाव ही ऐसा लगता है।
तबाड्स

12

ऐसा लगता है कि नीचे लाइन लॉलीपॉप डिवाइस पर काम नहीं करती है।

listView.setFooterDividersEnabled(false);

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

listView.setOverscrollFooter(new ColorDrawable(Color.TRANSPARENT));

यह स्वीकृत उत्तर होना चाहिए। सरल समाधान, मेरे लिए पहला शॉट काम किया।
समह

0

पृष्ठभूमि का उपयोग करें = @android: रंग / पारदर्शी। अच्छी तरह से काम। आप अभी भी अपनी पंक्ति लेआउट की पृष्ठभूमि का उपयोग कर सकते हैं

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.