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"

このattribute(listSeparatorTextViewStyle)が指すスタイルを使用しています。プラットフォームthemes.xmlを見ると、この属性に実際に使用されているスタイルはですWidget.TextView.ListSeparator.White。したがって、これはstyleカスタムスタイルで拡張する必要があります。

残念ながら、そのスタイルは非公開であり、拡張できないか、拡張しないでください(参照については、Googleのこのバグレポートを参照してください)。最善のオプションは、そのスタイル全体をカスタムスタイルでコピーしWidget.TextView.ListSeparator.WhiteWidget.TextView.ListSeparator公開されていないため、それもコピーする必要があります)、Androidプラットフォームからスタイルを拡張する代わりにそれを使用することです(リンクからのこの応答を参照してください)その上)。

于 2012-06-03T10:07:58.973 に答える