gpt4 book ai didi

Android 默认按钮样式不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:26:32 24 4
gpt4 key购买 nike

我正在尝试设置我的样式以使所有按钮具有特定的颜色组合,特别是蓝色和白色文本。这是我的主要 styles.xml:

<resources>
<style name="CustomTheme" parent="MaterialDrawerTheme.Light.DarkToolbar">
<!-- various items -->

<item name="android:buttonStyle">@style/ButtonStyle</item>
</style>

<!-- a couple of other styles -->

<style name="ButtonStyle" parent="android:style/Widget.Button">
<item name="android:textSize">19sp</item>
<item name="android:textColor">@color/primaryTextContrast</item>
<item name="android:background">@color/primary</item>
</style>
</resources>

在 list 中:

 <application
android:name=".CustomApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/application_name"
android:theme="@style/CustomTheme">

color/primary 是深蓝色,color/primaryTextContrast 是白色。在 Lollipop 上,按钮看起来很完美。在 4.1 设备上,它是浅灰色和黑色文本。我找到的用于执行此操作的所有资源看起来都与我正在做的完全一样,所以我不知道我在这里缺少什么。

我在控制基本样式定义中的文本大小方面也遇到了类似的问题。

更新:这是颜色。

<resources>
<color name="primary">#3F51B5</color>
<color name="dark">#303F9F</color>
<color name="accent">#FFCA28</color>
<color name="background">@android:color/white</color>
<!-- Color for text displayed on top of the primary or dark color -->
<color name="primaryTextContrast">@android:color/white</color>
<!-- Color for text displayed on the background color (which I think will always be white) -->
<color name="basicText">@color/primary</color>
<!-- Color for text displayed on the accent color -->
<color name="accentText">#303F9F</color>
</resources>

这是 v19/styles.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="FullscreenTheme" parent="MaterialDrawerTheme.Light.DarkToolbar.TranslucentStatus">
<item name="android:windowTranslucentNavigation">true</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowTranslucentStatus">true</item>
</style>
</resources>

这是 v21:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="CustomTheme">
<item name="android:windowContentTransitions">true</item>
<item name="android:windowAllowEnterTransitionOverlap">true</item>
<item name="android:windowAllowReturnTransitionOverlap">true</item>
<item name="android:windowSharedElementEnterTransition">@android:transition/move</item>
<item name="android:windowSharedElementExitTransition">@android:transition/move</item>
</style>
</resources>

我认为这些都不是使其在 5.1 上正常工作的原因。

最佳答案

使用 AppCompat 22.1.+(22.2.0 应该也可以),我定义了这样一个样式:

<style name="MyApp.Button.Red" parent="Base.Widget.AppCompat.Button">
<item name="colorButtonNormal">@color/primary</item>
<item name="android:colorButtonNormal">@color/primary</item>
<item name="android:textColor">@android:color/white</item>
</style>

然后使用 android 命名空间中的原生 theme 属性将主题应用到按钮中,如 this 中所述Chris Banes 的精彩帖子。

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sign_up_button"
android:theme="@style/MyApp.Button.Red" />

关于Android 默认按钮样式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30876082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com