分频器不会在ListView上显示

时间:2014-04-25 11:55:29

标签: android android-listview android-listfragment

帮助!我在SO上尝试了所有答案,但无济于事

Shape xml:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="line">
    <!-- stroke width must be 1px, see https://stackoverflow.com/questions/3979218/android-listview-divider -->  
    <stroke 
        android:width="1px"
        android:color="#aaAAaa" />  
</shape>

在ListFragment中:

public void onViewCreated(View v, Bundle bundle){
  listView = getListView();
  listView.setDivider(getActivity().getResources().getDrawable(R.drawable.xxxx));
  listView.setDividerHeight(1);
  setListAdapter(...);
}

适配器:

@Override public boolean areAllItemsEnabled(){return true;}

此外,分隔符不应该跨越整个列表视图的宽度,我想要在左侧和右侧有一些填充。所以我认为一个可绘制的形状是必须的。

已编辑答案: 不要使用直线,而是使用矩形。 并按照此填充: How to add padding to gradient <shape> in Android?

3 个答案:

答案 0 :(得分:0)

在listml的xml中指定以下内容:

 <ListView
        android:id="@+id/List"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1.0"
        android:divider="#35FFFFFF"
        android:dividerHeight="1dp" >
    </ListView>

分隔线的颜色和高度可以是你想要的任何东西。

答案 1 :(得分:0)

尝试使用,

listView = getListView();
listView.setDivider(new ColorDrawable(Color.parseColor("#aaAAaa")))
float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 1,getResources().getDisplayMetrics());
listView.setDividerHeight((int)px)

P.S。更新了代码以获取给定int值的dip值。您可以在我设置1的地方传递值。

答案 2 :(得分:0)

使用

 <ListView
    android:id="@+id/listview"   
    android:dividerHeight="3dp" 
    android:divider="#05806D"
    android:listSelector="#ffffff"
    android:choiceMode="singleChoice"
    android:layout_width="fill_parent"
     android:layout_height="fill_parent" >
</ListView> 

让我知道,直到你得到解决方案?