2010-11-23 12 views

答えて

36

できません。 2つのスタイルを組み合わせたスタイルを作成する必要があります。 (または、あなたのスタイルから継承するスタイルを1つだけ作成し、2番目のスタイルの余分なデータを追加する)。

いくつかの状況で動作することができます回避策として
2

、あなたがのLinearLayoutとあなたのターゲットビューをラップし、ビューにレイアウト別のスタイルを割り当てることができます。

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    style="@style/padding"> 

    <TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Bold text with padding" 
    style="@style/text_bold" /> 

</LinearLayout> 
+2

は動作しません含むレイアウトにスタイルを適用することtbkn23 @内部レイアウト – tbkn23

+0

には影響を与えないことが影響している必要はありません。内部レイアウト。たとえば、背景を変更したり、境界線を追加する場合は、これを親レイアウトで行うことができます。 – peceps

17

あなたが他を継承スタイルを作ることができますスタイル

例えば

:side_menu_buttonはbuttonStyleSmallのすべての属性を継承

<style name="Side_Menu_Button" parent="android:attr/buttonStyleSmall"> 
    <item name="android:layout_width">wrap_content</item> 
    <item name="android:layout_height">match_parent</item> 
</style> 
+3

自分のスタイルを使用する場合は、android:attrの代わりに "@ styles/mystyle"と書いてください。 – Ron

+0

申し訳ありませんが、buttonStyleSmallはデフォルトのアンドロイドスタイルの1つです – hook38

+0

個人的にはこれが最良の答えだと思います。私は "StandardButton"に継承され、 "LoginButton"によって継承された "StandardViewSize"スタイルを持っています。基本的にはスタイルのツリー全体です。できるだけジェネリックとして開始し、より具体的なコンポーネントスタイルに組み合わせて統一されたルックアンドフィールを作成します。 –

0

textAttribute属性をサポートするButtonやその他のビューの特定の場合、2つのスタイルをattribute:styleに割り当てられるButton固有のスタイルとattribute:textAppearanceに割り当てられるText固有のスタイルに分割できます。ただし、attribute:styleで定義された属性は、attribute:textAppearanceで定義された値を上書きします。

1

これは私が動作するようになったハックです:、

<style name="TextAppearance.Title.App" parent="TextAppearance.AppCompat.Subhead"> 
    <item name="android:textColor">@color/primary_text_default_material_light</item> 
</style> 

<style name="Custom.TV" parent="TextView.App"> 
    <item name="android:textAppearance">@style/TextAppearance.Other.App</item> 
</style> 
関連する問題