android - ListView 分隔线不可见

标签 android divider

ListActivity 使用 BaseAdapter 的扩展和以下布局:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:orientation="vertical"     
        android:background="@color/application_background_color">

<ListView android:id="@android:id/list" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:drawSelectorOnTop="false"
    android:divider="@drawable/divider"
    android:dividerHeight="2dip" android:clickable="true"
    android:choiceMode="singleChoice"    
    android:cacheColorHint="@color/application_background_color">
</ListView>

   </LinearLayout>

它为行膨胀以下布局:

            <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent">

    <TextView android:id="@+id/Row" 
        android:layout_width="fill_parent" android:layout_height="50dip"
        android:textSize="20dip" android:textColor="#000000"
        android:layout_margin="8dip"
        android:gravity="center_vertical"></TextView>

    </LinearLayout>   

drawable/divider.xml 目前看起来像这样,但我尝试了所有不同的类型:

    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="line">
      <stroke android:color="#FF000000">
      </stroke>
    </shape>    

如果我从图像中读取可绘制对象,它就可以工作。为什么当我将可绘制对象定义为 .xml 文件时它不起作用?

更新:
代码遵循与 Android 开发人员示例中的 EfficientAdapter 相同的模式:
http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List14.html

最佳答案

下面的代码对我有用:

列表布局:

<ListView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/list"
    android:cacheColorHint="@android:color/transparent"
    android:background="@android:color/transparent"
    android:textFilterEnabled="false"
    style="@style/ListDivider"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
</ListView>

样式.xml

<resources>
    <style name="ListDivider">
        <item name="android:divider">@drawable/my_shape</item>
        <item name="android:dividerHeight">5dp</item>
    </style>
</resources>

我的形状:

    <shape
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <padding
            android:top="2dp"
            android:left="2dp"
            android:right="2dp"
            android:bottom="2dp" />
        <corners
            android:radius="5dp" />
        <solid
            android:color="@android:color/white" />
    </shape>

关于android - ListView 分隔线不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6748127/

相关文章:

Android radiogroup,单选按钮之间的分隔符

android - 对话框中的样式 titleDivider

java - 在运行时更新或更改 View 中的图像

android - 如何使背景图 block 居中?

java - 获取 { 和 } 之间的所有文本(源文本包含\n)

javascript - 模拟可移动分隔线 : Need to disable default dragging

java - (?!a){0} 是什么?在 Java 正则表达式中是什么意思?

android - Xamarin Forms - Webview 未显示在我的 StackLayout 中

html - 如何使用 css 边框创建像素完美分隔线