Kotlin 中按钮状态的不同背景

2024-04-04

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

该按钮对于每种状态有 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. Disabled: Click here to see the disabled button - means I can't click on it unless I have a file selected.

  2. Enabled: Click here to see the enabled button] - means I have selected a file.

  3. Pressed: enter image description here - means if the button is enabled and I press on it.

state_enabled="false" and 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" />

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Kotlin 中按钮状态的不同背景 的相关文章

  • Android 从图库中选择图像显示内存错误

    我正在编写一个代码示例 我必须从图库中选择一个图像 该代码正在运行 但是在从图库中选择图像后 我得到了内存不足错误 in my 活动结果时 我可以获得小图像 但大图像会产生问题 这是我的代码 try Uri selectedImageUri
  • Android布局中如何实现Button的自动宽度

    我有几个垂直列出的按钮 我需要它们都具有相同的宽度 而且还要显示其中的所有文本 基本上我需要所有它们的宽度作为最大的宽度的包裹宽度 希望我解释得很好 现在 我已经有一种布局可以在我的 Samsung Galaxy S2 4 1 2 上运行
  • Android:如何根据视图模型实时数据属性为片段编写单元测试?

    我的片段 UI 中有一个列表视图 其元素集取决于来自视图模型 LiveData 属性的值的状态 我想为片段创建工具测试 该片段包含与该属性的值集相关的 3 个场景测试用例 但我不知道从哪里开始 我的代码应该如下所示 class MyView
  • 使用 Kotlin 协程替换 LocalBroadcastManager 以进行 Firebase 消息传递

    使用时Firebase 云消息传递 https firebase google com docs cloud messaging android client在 Android 上 通常需要通知当前Activity传入的推送通知 推荐的方法
  • 如何在Android项目中使用libffmpeg.so?

    我正在尝试在 Android 中创建一个屏幕录制应用程序 为此 我使用 FFmpeg 我已经创建了 libffmpeg so 文件 现在我想在 Android 项目中使用相同的方法来调用它的本机函数 我怎样才能做到这一点 本教程提供了有关此
  • 按钮 VisualState Focused 不起作用

    我试图在单击按钮时更改按钮的字体颜色 我尝试了很多不同的方法 但没有一个有效 这是我尝试过的最新方法 我认为应该是答案 但它不起作用 有人可以帮忙吗 PointerOver 工作正常 但单击按钮时 Focused 没有执行任何操作
  • 通过拖动块来选择多个项目

    首先 让我告诉你 我对此感到压力很大 因为我什至不知道概念 方法名称 所以我什至无法在谷歌中搜索它 因为我不知道关键字 但我会尝试我的最好解释一下 请随意修改我的内容和标题 我想要实现的是 我的视图组包含许多子视图 或者它可以是 GridV
  • Kotlin 协程阻塞 Android 中的主线程

    我是 Kotlin 和协程的新手 我有一个fun在我的活动及其内部 检查User用户名和密码 如果为真 则返回Users object 一切都好 但是当我按下按钮时 我的活动被阻止并等待响应Users login 我用这个有趣的 priva
  • Buildozer Numpy RuntimeError:工具链损坏:无法链接简单的 C 程序

    用 Python 编写我的第一个 Android 应用程序并使用 Buildozer 对其进行打包 因为稍后在项目中需要使用numpy 所以我尝试打包以下测试代码 import numpy import kivy kivy require
  • 温度转换 2 字节

    我很难转换两个字节的温度 我有一个控制单元 温度传感器 我可以在其中获取两个字节的温度消息 1 示例 message 40 25 LSBYTE 40 MSBYTE 25 0 03125 C bit temperature 25C seen
  • Android Studio 3.0 - 设置未保存

    我已将 文件 gt 设置 gt 编辑器 gt 代码样式 中的 右边距 列 从默认的 100 增加到 140 不幸的是 每次重新启动 Android Studio 后 该边距都会重置 我还尝试导出和导入我的设置 但这并不能阻止重置右边距 希望
  • IllegalStateException:无法更改片段的标签,以前是 android:switcher,现在是 android:switcher

    我的活动使用TabLayout ViewPager 这里的选项卡和页面的数量是动态的 具体取决于从服务器获取的数据 崩溃是通过 Crashlytics 报告的 我无法复制它 我的活动代码 Override protected void on
  • android中ScrollView中的图像

    在我的应用程序中 我想放置一个 png 文件 并且希望它在横向和纵向模式下都被视为滚动图像 请建议代码或示例 要使您的 Imageview 在高度不适合时滚动 您可以在 xml 中的 ScrollView 内添加一个 ImageView 并
  • 以编程方式安装 Android apk 作为测试框架的一部分

    我正在尝试以编程方式安装 apk 但运气不佳 我正在设置一个针对物理设备的自动化测试框架 并且我希望测试设备在运行测试之前从构建服务器检索最新的 apk 虽然我知道没有通用的方法可以在未经用户同意的情况下实际安装 apk 但我很好奇在开发人
  • 什么是“多重”启动模式?

    On http developer android com guide topics manifest activity element html http developer android com guide topics manife
  • 设置 LinearLayout 的最大宽度

    如何设置水平线的最大宽度LinearLayout 因此 如果内容较短 例如某些文本 布局会缩小 如果内容较长 则布局不会扩展超过某个最大宽度值 我更喜欢在 XML 级别执行此操作 这就是我所需要的超出了之前答案中的建议 https stac
  • SWIG C 函数指针和 JAVA

    我有一些 C 代码 其中一个方法有一个函数指针作为参数 我正在尝试在我的 Android 应用程序中使用 C 代码 我决定使用 SWIG 来完成生成我需要的 java 文件的所有工作 一切都适用于常规函数 没有函数指针作为参数的函数 但我不
  • OnSwipe 方法在 RecyclerView 中不起作用

    我正在开发一个用于播放音频文件的应用程序 创建了包含 2 个选项卡的选项卡布局 两者中都使用了片段RecyclerView两者都被使用 该片段名为LibraryFragment有这个RecycleView其物品在刷卡时必须传递给HomeFr
  • 无法查询 ContentResolver 以从 my_downloads 获取下载文件的名称,但在 all_downloads 中工作正常

    我的应用程序设置为激活一次具有扩展名的文件 myappdata被打开 它通过这个意图过滤器来实现这一点
  • 如何在不显示父活动的情况下将一个全屏对话框片段替换为另一个全屏对话框片段?

    我有一个使用单个自定义 DialogFragment 类的活动 它的外观是数据驱动的 因此不同的调用看起来可能相当不同 它是 全屏 即 setStyle DialogFragment STYLE NO FRAME android R sty

随机推荐