Android listview - 仅在列表末尾添加分隔符
Android listview - Add a divider only at the end of the list
我正在创建一个具有多个 listView 的自定义抽屉视图。为了向用户很好地展示这一点,我想用分隔线分隔这些 listView。
我已经设法显示项目之间的分隔线,甚至让最后一个显示分隔线,但不仅仅是最后一个项目。
我知道我可以用
切换分隔线
android:footerDividersEnabled="false"
android:headerDividersEnabled="false"
但这不是预期的效果(每个列表项之间的分隔线)。我只需要在列表下方添加一行。
此时我的 ListView XML:
<ListView android:id="@+id/list_view_drawer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="false"
android:choiceMode="singleChoice"
android:divider="@color/progress_gray"
android:footerDividersEnabled="false"
android:headerDividersEnabled="false"
android:dividerHeight="1dp"
android:background="#fff" />
有什么办法可以达到这种效果吗?
提前致谢。
编辑:
我知道我可以在列表下方放置一个 1dp 高度的视图。但我正在列表视图中寻找一个选项。如果那不可能,它开始看起来像。我将采用该解决方案。我觉得有点脏,但没办法。
您可以简单地在列表视图之间添加一个 1dp 高的视图。
</ListView>
<View
android:layout_height="1dp"
android:layout_width="match_parent"
android:background="@android:color/red"
/>
在您的抽屉布局中添加:
<ListView android:id="@+id/list_view_drawer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="false"
android:choiceMode="singleChoice"
android:background="#fff" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/progress_gray"/>
<ListView android:id="@+id/list_view_drawer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="false"
android:choiceMode="singleChoice"
android:background="#fff" />
您可以使用 addFooterView (View v)
在列表末尾添加视图。更多信息 here
而且看起来您需要从代码中执行此操作。
要仅在列表视图的最后一项设置分隔线,您可以在图像视图中查看或放置水平线。
<ImageView
android:id="@+id/imageseprator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/strip" />
或者
<View
android:id="@+id/imageseprator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/strip"/>
我正在创建一个具有多个 listView 的自定义抽屉视图。为了向用户很好地展示这一点,我想用分隔线分隔这些 listView。
我已经设法显示项目之间的分隔线,甚至让最后一个显示分隔线,但不仅仅是最后一个项目。
我知道我可以用
切换分隔线android:footerDividersEnabled="false"
android:headerDividersEnabled="false"
但这不是预期的效果(每个列表项之间的分隔线)。我只需要在列表下方添加一行。
此时我的 ListView XML:
<ListView android:id="@+id/list_view_drawer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="false"
android:choiceMode="singleChoice"
android:divider="@color/progress_gray"
android:footerDividersEnabled="false"
android:headerDividersEnabled="false"
android:dividerHeight="1dp"
android:background="#fff" />
有什么办法可以达到这种效果吗?
提前致谢。
编辑: 我知道我可以在列表下方放置一个 1dp 高度的视图。但我正在列表视图中寻找一个选项。如果那不可能,它开始看起来像。我将采用该解决方案。我觉得有点脏,但没办法。
您可以简单地在列表视图之间添加一个 1dp 高的视图。
</ListView>
<View
android:layout_height="1dp"
android:layout_width="match_parent"
android:background="@android:color/red"
/>
在您的抽屉布局中添加:
<ListView android:id="@+id/list_view_drawer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="false"
android:choiceMode="singleChoice"
android:background="#fff" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/progress_gray"/>
<ListView android:id="@+id/list_view_drawer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="false"
android:choiceMode="singleChoice"
android:background="#fff" />
您可以使用 addFooterView (View v)
在列表末尾添加视图。更多信息 here
而且看起来您需要从代码中执行此操作。
要仅在列表视图的最后一项设置分隔线,您可以在图像视图中查看或放置水平线。
<ImageView
android:id="@+id/imageseprator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/strip" />
或者
<View
android:id="@+id/imageseprator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/strip"/>