10

次のコードがあります

        <TextView
            android:text="@string/hello"
            style="?android:attr/listSeparatorTextViewStyle" />

そして、次の効果が得られます。

ここに画像の説明を入力

ただ、カラーラインは不満です。次のようなものが欲しい

ここに画像の説明を入力

ホロのように青色のラインを入れてほしいです。次のカスタムスタイルを試します。

<style name="MyOwnListSeperatorTextViewStyle">        
<item name="android:background">@android:drawable/list_section_divider_holo_light</item>        
<item name="android:textAllCaps">true</item>    

<!-- Copy from Widget.TextView.ListSeparator -->

<item name="android:background">@android:drawable/dark_header_dither</item>
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textColor">?textColorSecondary</item>
    <item name="android:textSize">14sp</item>
    <item name="android:gravity">center_vertical</item>
    <item name="android:paddingLeft">8dip</item>        
</style>

しかし、次のエラーが発生するため、機能しません。

エラー: エラー: リソースが公開されていません。(値「@android:drawable/dark_header_dither」の「android:background」で)。

で使用されている線の色を変更する方法を考えていますlistSeparatorTextViewStyleか?

4

1 に答える 1

15

典型的な Holo Spinner スタイルをオーバーライドするためにこれを行う必要がありました (下線付きのアイテムは必要ありませんでした。矢印だけが必要でした)。これはまったく同じ方法でオーバーライドできると思います。

まず、Android スタイル ソースでオーバーライドするアイテムを見つけます。すべてのスタイル (およびそれらをオーバーライドする名前) を含む非常に便利な SO 回答がここにあります: Set Dialog theme to parent Theme in Android

あなたのものは次の行だと思います:

<item name="listSeparatorTextViewStyle">@android:style/Widget.Holo.Light.TextView.ListSeparator</item>

これにより、自分のコンピューターのどこかにある Widget.Holo.Light.TextView.ListSeparator スタイルを見つける旅に出ます。しかし、私はそれを簡単にして、c&pするだけです:

<style name="Widget.Holo.Light.TextView.ListSeparator" parent="Widget.TextView.ListSeparator">
    <item name="android:background">@android:drawable/list_section_divider_holo_light</item>
</style>

さて、あなたはおそらく十分にそのままにしておいて、その背景のドローアブルを見たいと思うでしょう. 回避しようとしている不吉な灰色の線のように見える灰色の 9patch ファイルであることがわかります。

これをオーバーライドする必要があります。これを行う方法はいくつかあると思いますが、アプリケーションのテーマをカスタマイズすることで実現しています。themes.xml ファイルは次のとおりです。

<style name="AppTheme" parent="@android:style/Theme.Holo.Light.NoActionBar">
    <item name="android:listSeparatorTextViewStyle">@style/MyOwnListSeperatorTextViewStyle</item>
</style>

<style name="MyOwnListSeperatorTextViewStyle" parent="Widget.TextView.ListSeparator">
    <item name="android:background">@drawable/make_your_own_blue_9_patch_here</item>
</style>

listSeparatorTextViewStyle以前の SO 投稿の をどのように使用したかに注目してください。カスタム スタイルの親は、Widget.TextView.ListSeparatorandroid のスタイル ソースからですか? すべて非常に重要です。

このテーマをアプリに適用する必要があるだけですが、すでにテーマがあると仮定しています。まだ作成していない場合は、独自の 9patch を作成する必要がありますが、コンピューター上の list_section_divider_holo_light.9.png ファイルを見て、灰色の部分を青色にしてから、コピーを作成して独自のパッチに配置します。ドローアブル フォルダー。

これが機能し、役立つことを願っています!

于 2012-08-29T07:04:27.160 に答える