2017-06-03 67 views
0

我对列表视图项目具有以下布局。1dp填充在低分辨率设备中不可见

<?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

您可以通过添加它们作为参数传递到您的列表视图设置的分频器和分频器高度:

<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); 
相关问题