19

私がListViewで抱えている興味深い問題。これは、標準の ArrayAdapter を使用し、その中の項目にカスタム XML レイアウトを使用しています。単純な XML:

<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:background="@drawable/list_bg_blue"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingTop="20dp"
    android:paddingBottom="20dp"
    android:typeface="serif"
    android:textSize="20px"
    android:textStyle="bold|italic" 
    android:textColor="#FF1e5a82"
    android:shadowColor="#FFFFFFFF"
    android:shadowDx="1"
    android:shadowDy="1"
    android:shadowRadius="1"
/>

そこに問題があるとは思いませんが、取り除くことができない奇妙な黒い線がいくつか表示されています (下の図で確認できます)。ListView で設定しようとしましandroid:dividerHeight="0px"たが、これらはまだ表示されます。New Episodes と Shows の間には線がないことがわかりますが、なぜか最初と最後の後には線があります。

何か案は?

編集:もう少し考えてみましたが、最初と最後に過ぎないようです。

android:headerDividersEnabledandroid:footerDividersEnabled

フッターをfalseに設定すると最後のものが修正されましたが、奇妙なことにヘッダーの仕切りをfalseに設定しても効果はありませんでした。:/

さらに編集!: よし、リストにさらにいくつかのアイテムを追加しました (最初に追加する必要がありました)。他のすべてのアイテム (アイテム 1、アイテム 3、アイテム 5 など) がその下に表示される仕切り。

ListView の行

4

3 に答える 3

42

あなたは言えた

<ListView
    ...
    android:divider="@null"
    ...
/>

デフォルトでは、すべてのエントリの後に仕切りを挿入する必要があります。

于 2010-11-27T16:44:36.373 に答える
2

私は自分の質問に答えるのが嫌いですが、解決策を見つけました:

ListView lv = getListView();
lv.setDivider(null);

これで問題は解決しました。ただし、XML を使用してこれを行う方法を知りたいと思っています。また、他のすべての項目にのみ挿入する理由を理解したいと思っています。

于 2010-11-27T06:43:22.527 に答える