Android ListView'ün alt bölücüsünü kaldırın


95

Sabit bir boyum var ListView. Liste öğeleri arasında bölücü vardır, ancak son liste öğesinden sonra ayırıcıları da görüntüler.

İçindeki son öğeden sonra bir bölücü görüntülememenin bir yolu var mı ListView?

Yanıtlar:


183

android:footerDividersEnabled="false" ListView açıklamanıza eklemeniz yeterli


29
Bu, 4.4.2'den itibaren artık çalışmıyor gibi görünüyor. Pek çok test cihazımda tam anlamıyla aynı uygulamayı çalıştırabilirim (2.3.7'den 4.4.2'ye kadar) ve KitKat bunun etkisinin olmadığı tek uygulama ... Herhangi bir fikriniz var mı? ListView'uma altbilgi veya üstbilgi eklemiyorum ve bunu iki cihazda (Nexus 5 ve HTC One M8) yeniden oluşturdum.
Charles Madere

11
@ScootrNova 4.4.4 kullanıyorum ve liste görünümlerini ayarladığımda layoutHeight="wrap_content"alt bölücü kayboluyor.
Erhannis

1
Background = @android: color / transparent kullan, benim için çözdü
stef

bu çözümü android 5.1 ve 7.0'da denedi ve mükemmel çalışıyor! Teşekkürler dostum.
tomalf2

84

@ScootrNova'nın dediği gibi, bu, android 4.4.x'te farklı davranıyor gibi görünüyor (aka buggy) (sorunun ne zaman ortaya çıktığını tam olarak bilmiyorum)

Bu, 4.4.x'te + - kullanımının özel durumuyla ilgilidir, altbilgi görünümün dışında çizilir, ancak dolguya klipler onu gösterir.paddingclipToPadding="false"

Kullandığım çözüm, altbilgi over-scroll ( android:overScrollFooter) öğesini bir şekilde çalışan şeffaf olarak ayarlamaktı ...

Son çözümüm ( android:footerDividersEnabledgeriye uyumluluk için saklanan not ):

<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 çalıştıran bir HTC One X, 4.4.4 çalıştıran bir Nexus 5 ve 4.4.2 çalıştıran bir Samsung Galaxy S5 üzerinde test edilmiştir (@ Dallas187 sayesinde). Lollipop'ta çalışıyor gibi görünüyor. (yorumculara teşekkürler!)


1
Bu çözümün 4.4.2
Dallas187

1
Eklemek android:overScrollFooterbenim için hile yaptı. 5.0.2 ve 5.1 üzerinde çalışmak.
Edison Spencer

gerçekten ve android:footerDividersEnabled="false"tekrar uyumluluğa ihtiyacınız olduğuna inanıyorum
Sam

18

Bunu kodla yapmak istiyorsanız:

listView.setFooterDividersEnabled(false);

ve bir ListFragment kullanıyorsanız, liste görünümünü şu şekilde alabilirsiniz:

listFragment.getListView().setFooterDividersEnabled(false);

Yalnızca bu, google'da 1 numara olduğu için yorum yapıldı


2
Kod için teşekkürler - Sadece XML tabanlı çözümler varken üzülüyorum! Bir uygulamayı iOS'tan Android'e aktarıyorum ve şimdiye kadar hepsini kodda yapmanın, hepsini XML tabanlı düzene dönüştürmeyi denediğimden çok daha hızlı olduğunu düşünüyorum (ilk etapta koddaki tüm iOS kullanıcı arayüzünü tanımladığım gibi) ). Sanırım bir gün bütün bu XML şeylerine kafa
yormam

Benim için Pixel API 25 üzerinde çalışmıyor, sadece Annada'nın önerisi işe yarıyor gibi görünüyor.
Tbadams

13

Aşağıdaki satır lolipop cihazında çalışmıyor gibi görünüyor.

listView.setFooterDividersEnabled(false);

Bu nedenle, listedeki son öğeden sonra ayırıcıyı kaldırmak için aşağıdaki kodu kullanmanız gerekir.

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

Kabul edilen cevap bu olmalıdır. Basit çözüm, ilk çekimde benim için çalıştı.
Samah

Bingo. İyi şeyler. Paylaşım için teşekkürler!
Forrest

0

Background = @android: color / transparent kullanın. Mükemmel çalışıyor. Hala satır düzeninizin arka planını kullanabilirsiniz

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.