21

我有一个 LinearLayout 视图,我正在尝试添加一个分隔线,以便它看起来与默认的 ListView 控件完全相同。我正在尝试在默认的 Android (Nexus S 2.3.3) 联系人应用程序中复制编辑联系人,我相信 LinearLayout 最适合性能。

我正在使用代码来复制分隔线,如下所示:

    <View
    android:id="@+id/Separator"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/dividerHeight"
    android:background="?android:attr/divider"/>

如何访问默认分隔线颜色或可绘制以及分隔线高度?我希望这与我设置的 ListViews 相匹配,因此我认为最好使用 Android 系统属性。上面的代码崩溃如下所示,所以我假设我无法访问这些属性或正在错误地处理这个问题。

03-13 22:59:38.851: ERROR/AndroidRuntime(3575): Caused by: java.lang.RuntimeException: Binary XML file line #26: You must supply a layout_height attribute.
4

2 回答 2

38

这就是它在Android 源代码中的完成方式

<View android:id="@+id/Separator"
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:background="?android:attr/listDivider" />
于 2011-03-13T14:19:37.690 回答
0

魔术师知识的来源一定是https://developer.android.com/reference/android/R.attr.html

公共静态最终 int listDivider:

列表分隔线的可绘制对象。必须是对另一个资源的引用,格式为“@[+][package:]type:name”或格式为“?[package:][type:]name”的主题属性。

所以我所要做的就是在该站点搜索栏中输入-“列表分隔线的可绘制”或只是“分隔线”

于 2013-09-20T18:48:49.123 回答