在低分辨率设备

时间:2017-06-03 02:23:05

标签: android

我有以下列表视图项的布局。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/border"
    android:orientation="vertical"
    android:paddingBottom="1dp"
    android:paddingLeft="0dp"
    android:paddingRight="0dp"
    android:paddingTop="0dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/background_light">

        ....

    </LinearLayout>

</LinearLayout>

外部布局(@drawable/border)的背景为灰色,由于外部布局的paddingBottom1dp且内部布局背景为白色,因此每个布局之间存在灰线列表视图项目。

但是,在低分辨率(ldpi)设备中,此灰线​​不可见。

如果我将外部布局的填充更改为2dp,则灰线变为可见,但在高分辨率设备中看起来太厚。使用2px代替2dp可以获得更好的结果。

在低分辨率设备中显示灰色边框线的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以通过将它们作为参数添加到列表视图来设置分隔符和分隔符高度:

<ListView
    android:id="@+id/listView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    android:divider="@drawable/divider"
    android:dividerHeight="2px">
</ListView>

另外强烈建议使用RecyclerView而不是ListView,看一下接受的答案。 Android Recyclerview vs ListView with Viewholder

在RecyclerView(Android支持库25.0.0及更高版本)上设置分隔符:

DividerItemDecoration dividerItemDecoration = new DividerItemDecoration(context, DividerItemDecoration.VERTICAL);
recyclerView.addItemDecoration(dividerItemDecoration);