android - Kotlin 中按钮状态的不同背景

标签 android xml kotlin button drawable

我的项目中有一个按钮,其工作原理如下:

该按钮的每种状态有 3 种不同的设计 - 禁用 (state_enabled="false")、启用、按下。

如果未选择任何文件,此按钮将保持禁用状态,并且具有特定的设计。不过,当选择文件时,此按钮将启用并切换到不同的设计。每次启用并按下按钮时都可以看到按钮的突出显示颜色。

到目前为止我已经尝试过:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/background_blue" android:state_enabled="true" />
    <item android:drawable="@drawable/background_blue_white" android:state_enabled="false" />
    <item android:drawable="@drawable/background_green" android:state_pressed="true" />

</selector>

我想要的是:

  1. 已禁用:Click here to see the disabled button - 意味着除非选择了文件,否则我无法单击它。

  2. 已启用:Click here to see the enabled button] - 表示我已经选择了一个文件。

  3. 已按:enter image description here - 表示按钮是否已启用并且我按下了它。

state_enabled="false"state_enabled="true" 工作得很好,而 state_pressed="true" 则不起作用全部。你认为我做错了什么?

如果我的解释很复杂,请告诉我 - 我会尽力描述问题,使其尽可能易于理解。太感谢了。祝你今天过得愉快!

最佳答案

也许您应该设置默认颜色。

<item android:drawable="@drawable/background_blue" android:state_enabled="true" />
<item android:drawable="@drawable/background_blue_white" android:state_enabled="false" />
<item android:drawable="@drawable/background_green" android:state_pressed="true" />
<item android:drawable="@drawable/background_blue" />

没有任何“按下”和“启用”可绘制的默认颜色。

关于android - Kotlin 中按钮状态的不同背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62038945/

相关文章:

android - Libgdx:Touch up 事件意外发生

xml - 删除命名空间并使用 XSL 提取 XML 文件的子集

xml - Haskell 的哪个 XML 解析器?

android - 如何让 Sentry 自动检测android中的错误/崩溃

Android: float 操作按钮内的细节动画

android - 如何使用 FirebaseRecyclerViewAdapter 在扁平结构 Firebase 中导航

xml解析非法字符错误

android - 应该在哪里创建 fragment ?在viewModel或Activity中?

kotlin - 如何告诉 Kotlin 数组或集合不能包含空值?

java - 如何从jni将数组传递给java方法