不操千曲而后晓声,观千剑而后识器。这篇文章主要讲述向AppTheme添加按钮样式不起作用相关的知识,希望能为你提供帮助。
我试图为我的AppTheme添加自定义按钮样式,但它无法正常工作。作为参考,我在我的AppTheme中添加了一个Spinner样式,它运行正常。所以,我只需要找出我的按钮样式出错的地方。
style.xml:
<
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>
如果需要,我可以添加我的button_states.xml文件,但是如果我将我的样式直接插入布局中的按钮属性,请知道该样式是否有效,如下所示:
<
Button
android:id="@+id/button_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="4"
style="@style/myButtonStyle"
android:textSize="@dimen/text_size"
android:text="OK" />
父布局中的声明:
android:theme="@style/AppTheme"
那么,为什么它直接在按钮属性中工作,而不是通过我的AppTheme?
答案1-右键单击android studio中的res / drawable文件,创建新的DRAWABLE RESOURCE 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文件,并将按钮背景更改为之前创建的drawable
另一答案感谢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>
【向AppTheme添加按钮样式不起作用】如果有人能够进一步详细解释为什么会发生这种情况,我们将不胜感激。
推荐阅读
- 如何在Android上更改默认的ProgressBar圆圈颜色
- 以编程方式更改Chip Widget样式不起作用 - Android
- 在Android上拉伸游戏画面以跨设备统一分辨率
- 如何在android中同步/限制某些异步http调用
- AndroidPlot - 显示垂直域标签
- Android oreo - 推送通知崩溃
- Android与其他手机的连接
- 将com.google.android.gcm.GCMBaseIntentService升级到com.google.android.gms.gcm.GoogleCloudMessaging
- 从通知-Android打开活动