2017-06-03 78 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);