我正试图通过布局构建一个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.White
(Widget.TextView.ListSeparator
也不是公共的,因此也必须复制),在您的自定义样式中使用它,而不是从android平台扩展样式(请参见上面链接中的this response)。