2011-08-23 16 views
8

Androidの小さなボタンスタイルを拡張したいと考えています。は、私は、カスタムスタイルの親スタイルとしてbuttonStyleSmallまたはButton.Smallを設定することができますか?

<Button android:id="@+id/myButton" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_alignParentRight="true" 
     android:layout_gravity="right" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:textSize="10dp" 
     android:text="Click Here"/> 

をしかし、再利用性の利益のために、私は、カスタムスタイルにこれらのスタイルを転送したい:私は、インラインそれを行うことができます。どのように私はスタイルに親としてbuttonStyleSmall(またはWidget.Button.Small?)を追加することができますか?私のカスタムスタイルXMLでこのような何か:

<style name="RightLink" parent="?android:attr/buttonStyleSmall"> 
    <item name="android:layout_alignParentRight">true</item> 
    <item name="android:layout_gravity">right</item> 
    <item name="android:layout_height">wrap_content</item> 
    <item name="android:layout_width">wrap_content</item> 
    <item name="android:paddingLeft">2dp</item> 
    <item name="android:paddingRight">2dp</item> 
    <item name="android:textSize">10dp</item> 
</style> 

そのスタイルを使用して、ボタンの宣言で:

<Button android:id="@+id/myButton" 
     style="@style/RightLink" 
     android:text="Click Here"/> 

以下ルーカスによって記載されているように正しい構文を使用して編集

(使用@android:attr/buttonStyleSmall )親として、私はまだ二つの違いを見ている:buttonStyと

ボタンスタイルとインラインスタイルなどleSmallが追加さ:親としてbuttonStyleSmallと

pic1

カスタムスタイルを:

pic2

私は何をしないのですか?

+0

こんにちは、このため全体のソリューションは何ですか?フルコードを投稿できますか? – Emerald214

答えて

15

ですから、標準のAndroidのスタイルからinherit style informationsにしてみてください。そのためには、すでに行ったようにparentの属性を使用する必要があります。

標準スタイルを継承する唯一の例外は、あなたが@ない使用する必要があること、である?

<style name="RightLink" parent="@android:attr/buttonStyleSmall"> 

それはスタイルの異なるため(プラットフォームのスタイルのためにそれを行う方法についてもう少しましますあなた自身を作成し​​ました)はhereです。

<style name="RightLink" parent="@android:style/Widget.Button.Small"> 

これは動作します:


はそれで遊んでた後、私はあなたがinhirate方法が正しいですが、頼みの綱が間違っていることがわかりました。

差シームが整数定数style -attributeを使用して、コードでこれを追加するために使用されattr -subclassにアンドロイドR級で宣言されているということにします。

Rクラスのstyleサブクラスには、(実際に継承できる)XMLスタイル定義が格納されています。したがって、上記の行はあなたの問題を解決するはずです。

+0

素晴らしい素晴らしい素晴らしいが.....私は私がアップし、それを百万回投票ことがしたいです。おかげでありがたいです – user4o01

+1

私は混乱しているので、