Dan*_*ico 66 android android-appcompat
我有values:styles.xml
:
<style name="AppTheme.Button" parent="Base.Widget.AppCompat.Button">
<item name="colorButtonNormal">@color/my_color</item>
<item name="android:textColor">@android:color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)
并values-v21:styles.xml
与:
<style name="AppTheme.Button" parent="Base.Widget.AppCompat.Button">
<item name="android:colorButtonNormal">@color/my_color</item>
<item name="android:textColor">@android:color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)
和app风格搭配
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:buttonStyle">@style/AppTheme.Button</item>
</style>
Run Code Online (Sandbox Code Playgroud)
但颜色显得灰色而不是 @color/my_color
Ole*_*ndr 58
要自定义一个按钮,只需将android:theme ="@ style/AppTheme.Button"设置为您的按钮.
<Button
android:theme="@style/AppTheme.Button"
/>
Run Code Online (Sandbox Code Playgroud)
像在问题中一样定义你的风格
<style name="AppTheme.Button" parent="Base.Widget.AppCompat.Button">
<item name="colorButtonNormal">@color/my_color</item>
</style>
Run Code Online (Sandbox Code Playgroud)
[编辑]
请在此处查看GitHub演示
小智 48
使用Widget.AppCompat.Button.Colored
作为你的风格父母.
<style name="RedButton" parent="Widget.AppCompat.Button.Colored">
<item name="android:textColor">@color/white</item>
<item name="colorButtonNormal">@color/red</item>
</style>
Run Code Online (Sandbox Code Playgroud)
使用android:theme
,而不是style
按钮定义:
<Button android:theme="@style/RedButton"/>
Run Code Online (Sandbox Code Playgroud)
请参阅AppCompat v21>主题和Android支持库v22.1 - AppCompat博客文章.(注意第二篇文章,android:theme
API11支持,它只是不从父母那里做自动继承,你必须在每个孩子上指定它,这里不是问题但值得一提 - 请参阅Chris Banes的帖子).
tyl*_*ach 14
将xml行放在"AppTheme"xml中,而不是尝试从"AppTheme.Button"设置它.对于我来说,这适用于v22.1.1与非棒棒糖设备.我猜这是一个错误,因为你的解决方案适用于棒棒糖.
<item name="colorButtonNormal">@color/my_color</item>
Run Code Online (Sandbox Code Playgroud)
Joh*_*ohn 14
确保您Activity
正在扩展AppCompatActivity
,否则它将无法正确处理appCompat样式.
android.support.v7.app.AppCompatActivity
compile 'com.android.support:appcompat-v7:23.0.1'
Dou*_*aro 13
使用:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="buttonStyle">@style/AppTheme.Button</item>
</style>
Run Code Online (Sandbox Code Playgroud)
除掉 android:
这样可行:
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<!-- android:buttonStyle for v21+ and buttonStyle for the rest -->
<item name="buttonStyle">@style/MyCustomButton</item>
<item name="android:buttonStyle">@style/MyCustomButton</item>
<item name="colorButtonNormal">@color/my_color</item>
</style>
<style name="MyCustomButton" parent="Base.Widget.AppCompat.Button">
<item name="android:textColor">#ffffff</item>
<item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
</style>
Run Code Online (Sandbox Code Playgroud)
colorButtonNormal
可以在主题样式中设置.要更改按钮的文本颜色,大小或任何其他功能,您可以创建样式,然后在主题样式中使用buttonStyle
(小于v21)或android:buttonStyle
(v21 +)来设置按钮样式.
您好,我认为您使用的父小部件可能不正确,它应该适用android:Widget.Button
于 API 版本 21 或更早版本,对于更高版本 21 或更高版本,您应该使用 `android:Widget.Material.Button。假设您有默认样式,请参见下文。
res/values/styles.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:buttonStyle">@style/AppTheme.Button</item>
</style>
<style name="AppTheme.Button" parent="android:Widget.Button">
<item name="android:background">@color/my_color</item>
<item name="android:textColor">@android:color/white</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
对于 API 版本 21,资源样式文件应类似于 (res/values-v21/style.xml)
<resources>
<style name="AppTheme.Button" parent="android:Widget.Material.Button">
<item name="android:background">@color/my_color</item>
<item name="android:textColor">@android:color/white</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
谢谢 如果您有任何问题请告诉我。
归档时间: |
|
查看次数: |
48750 次 |
最近记录: |