web-dev-qa-db-ja.com

上と下の仕切​​りがAndroidリストビューに表示されない

私の理解では、リストビュー用に定義された仕切りは、リストの上部と下部、つまり最初のアイテムの上と最後のアイテムの下にも表示されるはずです。

何らかの理由で、リストビューに表示されません。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/mainLayout"
Android:layout_width="fill_parent" 
Android:layout_height="fill_parent" 
Android:background="@drawable/background">

<ImageView
    Android:id="@+id/home"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:paddingLeft="3dp"
    Android:paddingTop="3dp"
    Android:paddingBottom="3dp"
    Android:src="@drawable/homeicon"/>

<TextView
    Android:id="@+id/titleBar"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:text="Page Title" 
    Android:layout_marginLeft="10dp" 
    Android:paddingTop="3dp"
    Android:textSize="18sp" 
    Android:textStyle="bold" 
    Android:typeface="serif" 
    Android:textColor="#FFFFFF"
    Android:layout_centerHorizontal="true"/>

<ImageView
    Android:id="@+id/back"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:paddingRight="8dp"
    Android:paddingTop="8dp"
    Android:src="@drawable/backicon" 
    Android:layout_alignParentRight="true"/>


<ImageView
    Android:id="@+id/separator1"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:layout_below="@+id/home"
    Android:scaleType="fitXY"
    Android:src="@drawable/separatorimg" />


<ListView
    Android:id="@Android:id/Android:list" 
    Android:layout_below="@+id/separator1"
    Android:layout_width="fill_parent" 
    Android:layout_height="wrap_content" 
    Android:cacheColorHint="#00000000"
    Android:divider="@drawable/separatorimg">
</ListView>

</RelativeLayout>

Android:footerDividersEnabledをtrueに設定しても(これは、その問題に関する他の質問で与えられた答えです)、何も変更されません。また、無効になるデフォルトのフッターがない限り、無効なアイテムはありません。

何か案は?

編集:最初/最後のアイテムを超えてスクロールすると、上部と下部の仕切りの仕切りが一瞬表示され、その後消えるようです。インターフェースが継続するように見えますが、それが最後の項目であることに気づき、仕切りを無効にします。

18
InterRaptor

次のリンクのヘルプを使用してこの問題を解決しました: フッタービューが追加された場合、ディバイダーはリストビューの最後のアイテムから消えます

私がしたことは追加することでした

  Android:footerDividersEnabled="true" 

xMLのListViewへの属性。次に、プログラムで、を使用して選択可能な空のフッタービューを追加しました

 listView.addFooterView(new View(context), null, true);

ヘッダーは試していませんが、同じように機能することを期待しています。

29
k3v

私も同じ問題を抱えていました。これが私がそれを解決した方法です:

<ListView
    Android:id="@+id/my_list"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:divider="@color/transparent"
    Android:dividerHeight="@dimen/padding_default"
    Android:footerDividersEnabled="false"
    Android:headerDividersEnabled="false" >
</ListView>

次に、onCreate()メソッドに次のようになります。

View v = new View(this);
v.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, 1));
mList.addFooterView(v);
4
Mugur

以下の変更されたコードを見つけてください:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/mainLayout"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="@drawable/background" >

<LinearLayout
    Android:id="@+id/llAppBar"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:layout_alignParentTop="true"
    Android:orientation="horizontal"
    Android:weightSum="10" >

    <ImageView
        Android:id="@+id/home"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_weight="2"
        Android:paddingBottom="3dp"
        Android:paddingLeft="3dp"
        Android:paddingTop="3dp"
        Android:scaleType="fitXY"
        Android:src="@drawable/homeicon" />

    <TextView
        Android:id="@+id/titleBar"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_marginLeft="10dp"
        Android:layout_weight="6"
        Android:paddingTop="3dp"
        Android:text="Page Title"
        Android:textColor="#FFFFFF"
        Android:textSize="18sp"
        Android:textStyle="bold"
        Android:typeface="serif" />

    <ImageView
        Android:id="@+id/back"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_weight="2"
        Android:paddingRight="8dp"
        Android:paddingTop="8dp"
        Android:scaleType="fitXY"
        Android:src="@drawable/backicon" />
</LinearLayout>

<ImageView
    Android:id="@+id/separator1"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:layout_below="@id/llAppBar"
    Android:scaleType="fitXY"
    Android:src="@drawable/separatorimg" />

<ListView
    Android:id="@Android:id/Android:list"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:layout_below="@id/separator1"
    Android:cacheColorHint="#00000000"
    Android:divider="@drawable/separatorimg" >
</ListView>

</RelativeLayout>
0
Eldhose M Babu

リストビューの下のビューを使用してフッターを設定する必要があると思います。私は同じ問題を抱えていました、そしてこれは私が解決策として得ることができたものです:

リストの最後の項目の後に仕切りを表示

0
Archie.bpgc