Android 向AppTheme添加按钮样式无效
我尝试向AppTheme添加自定义按钮样式,但它不起作用。作为参考,我在AppTheme中添加了一个微调器样式,效果很好。所以,我只需要找出我的按钮风格哪里出了问题 style.xml:Android 向AppTheme添加按钮样式无效,android,button,styles,themes,Android,Button,Styles,Themes,我尝试向AppTheme添加自定义按钮样式,但它不起作用。作为参考,我在AppTheme中添加了一个微调器样式,效果很好。所以,我只需要找出我的按钮风格哪里出了问题 style.xml: <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:spinnerStyle">@style/mySpinnerStyle</item>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:spinnerStyle">@style/mySpinnerStyle</item>
<item name="android:buttonStyle">@style/myButtonStyle</item>
<item name="buttonStyle">@style/myButtonStyle</item>
</style>
<style name="mySpinnerStyle" parent="@style/Widget.AppCompat.Spinner">
<item name="overlapAnchor">true</item>
<item name="android:background">@drawable/spinner_background</item>
<item name="android:padding">5sp</item>
</style>
<style name="myButtonStyle" parent="@style/Widget.AppCompat.Button">
<item name="android:background">@drawable/button_states</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
</style>
那么,为什么它直接在按钮属性中工作,而不是通过我的AppTheme?1-在android studio中右键单击res/DRAWABLE FILE,创建新的可绘制资源文件 2-在其中编写如下代码:-
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<corners
android:radius="100dp"
/>
<solid
android:color="#FFFFFF"
/>
<size
android:width="100dp"
android:height="100dp"
/>
</shape>
3-打开包含此按钮的XML文件,并将按钮背景更改为之前创建的可绘制资源文件。1-在android studio中右键单击res/drawable file,创建新的可绘制资源文件 2-在其中编写如下代码:-
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<corners
android:radius="100dp"
/>
<solid
android:color="#FFFFFF"
/>
<size
android:width="100dp"
android:height="100dp"
/>
</shape>
3-打开包含此按钮的XML文件,并将按钮的背景更改为之前创建的绘图表,感谢Ahmad Sattout的回答 在我的按钮样式中,我从父项中删除了@style: 原件:
<style name="myButtonStyle" parent="@style/Widget.AppCompat.Button">
<item name="android:background">@drawable/button_states</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
</style>
@可拉拔/按钮状态
真的
真的
更改:
<style name="myButtonStyle" parent="Widget.AppCompat.Button">
<item name="android:background">@drawable/button_states</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
</style>
@可拉拔/按钮状态
真的
真的
如果有人能更详细地解释为什么会发生这种情况,我们将不胜感激。感谢艾哈迈德·萨图特的回答 在我的按钮样式中,我从父项中删除了@style: 原件:
<style name="myButtonStyle" parent="@style/Widget.AppCompat.Button">
<item name="android:background">@drawable/button_states</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
</style>
@可拉拔/按钮状态
真的
真的
更改:
<style name="myButtonStyle" parent="Widget.AppCompat.Button">
<item name="android:background">@drawable/button_states</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
</style>
@可拉拔/按钮状态
真的
真的
如果有人能更详细地解释为什么会发生这种情况,我们将不胜感激。主题的父级不需要@样式。并尝试将应用程序主题保留在清单中,以便于管理感谢您的反馈。我采纳了你的建议,现在一切正常。从“myButtonStyle”的父项中删除@style使其工作。虽然样式更改不会显示在IDE的预览中,但它仅在运行应用程序时显示。有什么想法吗?主题的父级不需要@样式。并尝试将应用程序主题保留在清单中,以便于管理感谢您的反馈。我采纳了你的建议,现在一切正常。从“myButtonStyle”的父项中删除@style使其工作。虽然样式更改不会显示在IDE的预览中,但它仅在运行应用程序时显示。有什么想法吗?谢谢,是的,我有一个类似的按钮文件。我没有显示该文件,因为我知道错误在我显示的代码中的某个地方。谢谢,是的,我有一个类似的按钮文件。我没有显示该文件,因为我知道错误在我显示的代码中的某个地方。这只是一个错误的编译。风格往往不会告诉你什么是错的,什么是错的。您添加了@style,但工作室不知道这是对还是错,这只是一个错误的编译。风格往往不会告诉你什么是错的,什么是错的。您添加了@样式,但工作室不知道这是对还是错