Androidアプリケーションのすべてのボタンにスタイルを適用する方法


131

アプリケーション全体にスタイルを適用しました。

AndroidManifest.xml:

<application android:theme="@style/ApplicationStyle" android:icon="@drawable/icon" android:label="@string/app_name">

そして私のstyles.xmlで:

 <style name="ApplicationStyle" parent="android:Theme">
  <item name="android:button">@style/CKButton</item>
 </style>
 <style name="CKButton" parent="android:style/Widget.Button">
  <item name="android:textSize">19sp</item>
  <item name="android:layout_margin">0dip</item>
  <item name="android:background">#ff0000</item>
 </style>

しかし、スタイルは適用されません。

ApplicationStyle- Itemで誤った名前を使用しただけで申し訳ありませんが、オブジェクト名を探す場所がなく、単純android:buttonにすべてのボタンに当てはまります。


回答:


206

Androidスタイルの場合、Androidがでレイアウトしたプリセット属性を参照しR.attrます。この場合、を参照したいようですandroid:buttonStyle。私はこれがうまくいくと思います:

<style name="ApplicationStyle" parent="android:Theme">
  <item name="android:buttonStyle">@style/CKButton</item>
</style>

1
神様、私はそのような機能を長い間探していました。ボタンのtextColorがメインテーマのtextColorプロパティに従っていない理由がわかりません。どうもありがとう!
Fenix Voltres 2012

スピナーのためにこれを行う方法は誰にもありませんか?
Mike6679 2013年

31
注:CKButtonスタイルが@android:style / Widget.Buttonを継承しない場合、ボタンは機能しなくなります。
James

9
違いは何であるparent="android:Widget.Button"とはparent=@android:style/Widget.Button
Bugs Happen 2015

レイアウトエディターがテーマに設定されたボタンスタイルに従って変更をプレビューしない理由
Killer
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.