我最近刚刚更新了Android Studio,从那以后,ThemeOverlay属性就没有显示在预览/设计编辑器中的按钮上,这与更新之前一样。但是,当我在设备上运行应用程序时,ThemeOverlay可以工作。以下是该按钮的一些测试代码。我已将“按钮”的背景属性设置为“蓝色”,并将按钮的文本设置为“测试我”
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Test Me"
android:background="#0000FF"
android:layout_marginTop="20dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark"/>
</LinearLayout>
主题属性设置为TheOverLay.AppCompat.Dark,以使按钮上的文本变浅,但未在Android Studio的设计编辑器/预览中显示。文本仍显示为暗/黑。当我在连接的设备上运行此程序时,它工作正常。 是因为当前更新已更改某些内容吗?
答案 0 :(得分:0)
您可以在基本主题中进行设置:
<item name="android:colorButtonNormal">@color/some_color</item>
(基本上是全局的),所有按钮都将具有您在主题文件中定义的颜色。
另一方面,我相信您无法从ThemeOverlay获取按钮主题。相反,请创建新样式并将父级设置为Button
。
<style name="CustomButton" parent="Widget.AppCompat.Button.Colored">
<item name="colorButtonNormal">@color/Red</item>
<item name="android:colorButtonNormal">@color/Red</item>
<item name="android:textColor">@color/White</item>
</style>
您可以将样式应用为:
android:theme="@style/CustomButton"