我正试图通过布局构建一个android用户界面。我从以下几点开始:

<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>

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

最佳答案

使用时:

style="?android:attr/listSeparatorTextViewStyle"

您正在使用此属性(listSeparatorTextViewStyle)所指的样式。如果您在平台themes.xml中查看,您将看到实际用于此属性的样式是Widget.TextView.ListSeparator.White。所以这是您应该在自定义样式中扩展的style
不幸的是,这种风格是私有的,你不能扩展它,或者你不应该扩展它(参考google的this bug report)。您最好的选择是复制整个样式,Widget.TextView.ListSeparator.WhiteWidget.TextView.ListSeparator也不是公共的,因此也必须复制),在您的自定义样式中使用它,而不是从android平台扩展样式(请参见上面链接中的this response)。

07-26 08:32