Android ListViewの下の仕切りを削除します。


94

身長は固定ListViewです。リストアイテム間に仕切りがありますが、最後のリストアイテムの後に仕切りも表示されます。

の最後のアイテムの後に仕切りを表示しない方法はありListViewますか?

回答:


183

android:footerDividersEnabled="false" リストビューの説明に追加するだけです


29
これは、4.4.2以降では機能しないようです。文字通り同じアプリを多くのテストデバイス(2.3.7から4.4.2まで)で実行でき、KitKatだけが効果がないようです...何かアイデアはありますか?リストビューにフッターやヘッダーを追加せず、2つのデバイス(Nexus 5とHTC One M8)でこれを再現しました。
Charles Madere 14

11
@ScootrNova 4.4.4を使用していますが、リストビューを設定するlayoutHeight="wrap_content"と、下部の仕切りが表示されなくなります。
Erhannis 14

1
background = @android:color / transparentを使用して、解決してください
stef

Android 5.1および7.0でこのソリューションを試したところ、完全に機能しました。ありがとう。
tomalf2

83

@ScootrNovaが言ったように、これはandroid 4.4.xでは動作が異なる(別名バギー)ようです(問題がいつ導入されたのか正確にはわかりません)。

これは、4.4.xで+ - を使用する特定のケースに関連しています。フッターはビューの外側に描画されますが、パディングするクリップはそれを表示します。paddingclipToPadding="false"

私が使用した解決策は、フッターのオーバースクロール(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を実行するHTC One X、4.4.4を実行するNexus 5、および4.4.2を実行するSamsung Galaxy S5でテスト済み(@ Dallas187に感謝)。Lollipopも動作しているようです。(コメント者に感謝!)


1
このソリューションが4.4.2を実行しているSamsung Galaxy S5で機能することを確認するだけ
Dallas187

1
追加するandroid:overScrollFooterことで、私はうまくいった。5.0.2と5.1に取り組んでいます。
Edison Spencer

確かに、そして私はあなたがandroid:footerDividersEnabled="false"バックコンパットを必要とすると信じています
サム

18

コードでこれを行う場合は、次のとおりです。

listView.setFooterDividersEnabled(false);

また、ListFragmentを使用している場合は、次の方法でリストビューを取得できます。

listFragment.getListView().setFooterDividersEnabled(false);

これはグーグルで1位になったのでコメントのみ


2
コードをありがとう-XMLベースのソリューションしかないときは悲しくなります!私はアプリをiOSからAndroidに移植していますが、これまでのところすべてをコードベースで行う方がすべてのXMLベースのレイアウトに変換するよりもはるかに高速であると思います(最初にすべてのiOS UIをコードで定義したため) )。ある日、すべてのXMLのことを頭に入れなければならないでしょうが、今日はそうではありません:)
Herr Grumps

Pixel API 25で私のために働いていません、Annadaの提案だけがそれをするようです。
Tbadams

12

以下の行は、lollypopデバイスでは機能しないようです。

listView.setFooterDividersEnabled(false);

したがって、以下のコードを使用して、リストの最後の項目の後の仕切りを削除する必要があります。

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

これは受け入れられる答えになるはずです。簡単な解決策、最初のショットでうまくいきました。
Samah 2016

0

background = @android:color / transparentを使用します。完璧に動作します。行レイアウトの背景を引き続き使用できます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.