9

は Android アクティビティのクロムの一部であるためDrawerLayout、ドロワーの背景色はアクション バーの背景色のように見えるため、一致します。したがって、ListViewドロワーのコンテンツである をアクション バーと同じ背景色に設定し、 ListView.

そしてここで、Android スタイルのシステムである曲がりくねった小さな通路の迷路に迷い込んでしまいます...

?android:attr/構文を使用すると、アクティビティで使用されているテーマで定義された値を参照によって参照できることを知っています (たとえば、 ?android:attr/activatedBackgroundIndicator「アクティブ化された」状態で動作するリスト項目行の背景として)。

android:actionBarStyleテーマがアクション バー自体のスタイルを設定するために使用されるスタイルを指している場所であり、そのネストされた (?) スタイルでandroid:background、アクション バーに使用される背景であることを知っています。

私が知らないのは、アクションバーの定義されたスタイルから背景を引き出す に?android:attr/適用される を作成する方法です。ListView

これは可能ですか?もしそうなら、構文は何ですか?

私の推測では、これは不可能です。そのため、公式のDrawerLayoutサンプルでは背景色がハードコーディングされています...

ありがとう!

4

2 に答える 2

0

AFAICT 関連するattrs.xml?android:attrにそのような属性がエクスポートされていないという理由だけで、アクションバーの背景に対処するために構文を使用することはできません。そのよう な属性をカスタム テーマに追加/定義してから、styles/ で参照を使用する必要があります。レイアウト。例えば:

-attrs.xml:

<declare-styleable name="CustomTheme">
    <attr name="actionbarBackground" format="reference"/>
</declare-styleable>

-themes.xml

<style name="CustomTheme" parent="Theme.Holo.Light">
    ...
    <item name="actionbarBackground">@color/your_fav_color</item>
    <item name="android:actionBarStyle">@style/CustomActionbar</item>
    ...
</style>

-styles.xml

...
<style name="CustomActionbar" parent="@android:style/Widget.Holo.Light.ActionBar">
        <item name="android:background">?attr/actionbarBackground</item>
        ....
</style>
于 2013-05-30T13:05:56.157 に答える