gpt4 book ai didi

android - 带有支持库的 Pre-Lollipop 上的无边框按钮

转载 作者:可可西里 更新时间:2023-11-01 18:44:08 26 4
gpt4 key购买 nike

我正在使用支持库 (23.0.1) 制作无边框平面按钮。它在 Lollipop 上正常工作。但是,当我按下按钮时,在 Lollipop 之前,它的颜色会变为 colorButtonNormal 颜色,就像它是一个普通按钮一样。

我不认为这是正常现象,聚焦颜色应该像 Lollipop 上那样是灰色。

这是 Lollipop 和 Pre-lollipop 的屏幕截图。

Lollipop 上的第一个正常行为:Lollipop 上正常状态和聚焦状态下的无边框按钮

enter image description here

在 Pre-Lollipop 上不是正常行为(期望颜色像上面一样是灰色,但它不是):正常状态下的无边框按钮和 Pre-lollipop 上的聚焦状态 enter image description here

主题

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
//other stuff
<item name="colorButtonNormal">@color/orangeColor</item>
<item name="buttonBarButtonStyle">@style/BorderlessButtonStyle</item>
</style>

<style name="BorderlessButtonStyle" parent="Widget.AppCompat.Button.Borderless">
<item name="android:textColor">@color/blueTextColor</item>
</style>

现在布局中的按钮:

<Button
android:id="@+id/btnForgotPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/forgot_your_password"
style="?attr/buttonBarButtonStyle"
/>

使用 AppCompat 主题和样式编写它而无需制作单独的 Drawable 的任何方式。

最佳答案

Borderless Button 适用于带有支持库的 Post 和 Pre Lollipop 版本,但它们的 onPressed 颜色之间存在细微差别。

Pre-Lollipop:默认情况下,onPressed 颜色与使用 colorButtonNormal 设置的默认 Button 颜色相同。

Lollipop:默认onPressed颜色为浅灰色,比较理想。

你可以像这样制作无边框按钮:

<Button  
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Name"
style="@style/Widget.AppCompat.Button.Borderless"/>

现在,如果您想在所有版本上使用相同的 onPressed 颜色,则可以在新主题中设置 colorControlHighlight 并在 Button 上设置该主题。

<Button  
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Name"
android:theme="@style/BorderlessButton"
style="@style/Widget.AppCompat.Button.Borderless"/>

和你风格的主题:

<style name="BorderlessButton" parent="Theme.AppCompat.Light">
<item name="colorControlHighlight">YOUR COLOR</item>
</style>

更新:自 Android 5.0 Lollipop 和 AppCompat v22.1.0(及更高版本)起,您可以对 View 使用 android:theme 属性。

关于android - 带有支持库的 Pre-Lollipop 上的无边框按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33049052/

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