2013-09-25 16 views
6

私は最近、Androidベースのアプリにアプローチしたスタイルベースを採用しようとしました。しかし、私はこのジレンマに悩まされています。私は運でこれをやってみました私のstyles.xmlでAndroidスタイル属性を継承する方法は?

<LinearLayout 
     android:id="@+id/layout_event_buttons" 
     style="?android:attr/buttonBarStyle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:orientation="horizontal" > 

     <ImageButton 
      android:id="@+id/btn_create_event" 
      style="?android:attr/buttonBarButtonStyle" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:contentDescription="@string/btn_save" 
      android:src="@drawable/content_save" 
      android:text="@string/btn_save" /> 
</LinearLayout> 

:私のレイアウトファイルで

私はもともとこれを持っていた私は、すでに上記のさまざまなバリエーションを試してみました

<style name="Buttons" parent="?android:attr/buttonBarButtonStyle"> 
    <item name="android:layout_width">match_parent</item> 
    <item name="android:layout_height">wrap_content</item> 
</style> 

のように:

?android:buttonBarButtonStyle

?attr:buttonBarButtonStyle

@android:attr/buttonBarButtonStyle

@android:buttonBarButtonStyle

私も試してみました:

<item name="style">?android:attr/buttonBarButtonStyle</item> 

を無駄に。

buttonBarButtonStyleリソースが見つからないため、アプリケーションがコンパイルされません。

これは私がそれを適用した方法です。私はちょうどホロのような共通のテーマを継承する場合は私の他のスタイルはなど、正常に動作

<ImageButton 
    style="@style/Buttons" 
    android:id="@+id/btn_create_event" 
    android:contentDescription="@string/btn_save" 
    android:src="@drawable/content_save" 
    android:text="@string/btn_save" /> 
+0

だけでなく、それを説明してところで、私はマニフェストでこれを持っています 私はサポートされていないAPI – Chad

答えて

3

答えはこの記事に類似であることが判明: How does an android:attr style work?

このスタイルがプライベートであり、あなたが必要があるかもしれませんが判明それを完全にコピーして取り除くことができます。 :(

+0

複数の同じ名前付きカスタム属性を持つことはできません。 – TheLibrarianCz

0

私は、ボタンの属性にandroid:background="?android:attr/selectableItemBackground"を適用すると、あなたが持っているように?android:attr/buttonBarButtonStyleを拡張した後(アンドロイドのButtonBarのようなボタンの行為を行い境界を、削除することがわかってきました。

This post

関連する問題