为什么ListView不显示分隔符

时间:2015-12-22 16:32:53

标签: android android-layout listview android-listview

对于这个特殊情况,我使用默认的listview布局,我正在使用ListFragment扩展我的活动。我在listview中显示分隔符时遇到问题。我正在使用以下xml文件作为listview row formate。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center_vertical"
android:background="@color/windowBackground"
android:padding="2dp" >

       <RelativeLayout android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true" >

            <TextView android:id="@+id/tvtitle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="@android:style/TextAppearance.Medium" />

            <TextView android:id="@+id/tvdescription"
                android:layout_below="@id/tvtitle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="@android:style/TextAppearance.Small" />

      </RelativeLayout>

      <!-- This is Supposed to be the divider -->
      <RelativeLayout
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:background="@drawable/shape" >
      </RelativeLayout>

</RelativeLayout>

使用RelativeLayout文件的第二个shape.xml应该是分隔符。 Shape.xml文件如下

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
      android:shape="rectangle" >

    <corners android:radius="2px" />
    <stroke
        android:width="2px"
        android:color="@color/colorAccent" />
    <solid android:color="@color/colorPrimary"/>
</shape>

列表数据输出正常。我可以在TextViews中查看数据,但它没有显示带有背景RelativeLayout的{​​{1}}分隔符

1 个答案:

答案 0 :(得分:0)

你可以像你一样在你的布局行中放置一个分隔符,但你必须纠正它

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center_vertical"
android:background="@color/windowBackground"
android:padding="2dp" >

       <RelativeLayout 
           android:id="@+id/row_id"
           android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true" >

            <TextView android:id="@+id/tvtitle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="@android:style/TextAppearance.Medium" />

            <TextView android:id="@+id/tvdescription"
                android:layout_below="@id/tvtitle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="@android:style/TextAppearance.Small" />

      </RelativeLayout>

      <!-- This is Supposed to be the divider -->
      <RelativeLayout
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:layout_below="@id/row_id"
           android:layout_marginTop="5dp"
           android:layout_marginBottom="5dp"
           android:background="@color/yourColor" >
      </RelativeLayout>

</RelativeLayout>

或更简单的方法是从除法中获取listView并为其添加分隔符

getListView().setDividerHeight(heightOfDivider);
getListView().setDivider(yourDrawable);

如果有任何问题发表评论

祝你好运!