9

我正在尝试通过布局构建 Android UI。我从以下内容开始:

<TextView
    android:id="@+id/..."
    android:layout_marginTop="8dip"
    android:text="..."
    style="?android:attr/listSeparatorTextViewStyle"/>

这看起来不错(全部大写,较小的字体,下面的分隔条)。现在我想扩展样式,所以我将其更改为以下内容:

<TextView
    android:id="@+id/..."
    android:layout_marginTop="8dip"
    android:text="..."
    style="@style/section_title"/>

具有以下风格:

<style name="section_title" parent="@android:attr/listSeparatorTextViewStyle">
    <item name="android:layout_width">fill_parent</item>
    <item name="android:layout_height">wrap_content</item>
</style>

这不起作用(字体是正确的,但分隔线不见了)。

怎么……那个?

4

1 回答 1

24

当您使用时:

style="?android:attr/listSeparatorTextViewStyle"

您正在使用此属性 ( listSeparatorTextViewStyle) 所指向的样式。如果您查看平台themes.xml,您会看到实际用于此属性的样式是Widget.TextView.ListSeparator.White. 所以这是style你应该在你的自定义样式中扩展的。

不幸的是,这种风格是私有的,你不能扩展它,或者你不应该扩展它(参考,见谷歌的这个错误报告)。您最好的选择是在您的自定义样式中复制整个样式Widget.TextView.ListSeparator.WhiteWidget.TextView.ListSeparator也不是公开的,因此也必须复制它)并使用它而不是从 android 平台扩展样式(请参阅链接中的此响应以上)。

于 2012-06-03T10:07:58.973 回答