问题标签 [statelistdrawable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
139 浏览

android - 使用自定义 StateListDrawable 查看不呈现

我想根据视图的选定状态动态选择 Drawable。我使用布尔状态而不是字符串,因为根据这篇文章不支持字符串。以下是代码详细信息:

attrs.xml

selector_driver_state.xml

状态视图.kt

用法:

问题是StateView没有渲染。我尝试以编程方式设置状态,但使用setStateBusy. 有什么线索吗?谢谢你。

0 投票
0 回答
87 浏览

java - 为什么 ColorStateList 不适用于 GradientDrawable?

我正在尝试使用为不同状态设置的GradientDrawable设置TestView背景。当对GradientDrawable使用方法:setStrokesetColor(获取ColorStateList)时,似乎ColorStateList被忽略了。对于以下代码:

我得到以下输出:

2020-07-01 03:21:45.776 29138-29138/com.example.testcheckbox E/12345: 16842910 2020-07-01 03:21:45.776 29138-29138/com.example.testcheckbox E/12345: 16843597

如您所见,尽管只有一个状态,但我得到了两个 id,并且第一个 id 属于state_enabled const(它不是我设置的状态的一部分)。有人可以帮我解决这个问题吗?谢谢

0 投票
0 回答
30 浏览

android - Android中基于状态的fontFamily

StateListDrawables 并且非常适合为视图的每个状态设置不同的可绘制对象,但是有没有办法绑定视图应该为每个状态使用的文本样式?

例如,如果您有一个 fontFamily 为“sans-serif-medium”的按钮,当获得焦点时,该按钮fontFamily变为“sans-serif-light”。我可以想象我将如何使用代码来做到这一点,但是有没有一种方法可以使用类似于用于可绘制对象的 XML 来做到这一点?

0 投票
0 回答
95 浏览

android - Android TextView 是否支持 state_pressed 状态?

真正的任务是在 Android 中使用 TextViews 作为按钮的自定义 ButtonBar(如下所示),每个按钮都应该反映它们的状态,按下/选择。

在此处输入图像描述

TextView 设置了以下背景,以反映不同的状态。Android TextView 支持哪些状态?例如,如果它支持按下/选择等状态,如何从 XML/代码更新 TextView?

下面的 TextView 代码片段供参考

谢谢你的时间 :)

0 投票
0 回答
23 浏览

android - Android StateListDrawable 未更改为 state_pressed

我有一个具有 3 种状态(按下、选择和默认)的自定义可绘制对象。在 Android Studio 预览中切换状态时,按下状态不会触发对可绘制对象的任何更改。选定的状态按预期工作。我在专注状态下也经历过这种行为, state_checked 似乎正在工作。在我为测试目的创建的另一个绘图中,一切都按预期工作,即使状态的顺序完全相同。

具有错误行为的自定义可绘制对象:

具有相同顺序和正确行为的自定义可绘制对象:

0 投票
1 回答
722 浏览

android - Jetpack Compose State List Drawable 等效项

StateListDrawable在 Jetpack Compose中获得 a 功能的最佳方法是什么?

0 投票
0 回答
52 浏览

android - 无法在导航中使用颜色状态列表查看 Android kotlin

我有两个项目,一个在 NavigationView 中使用颜色状态列表选择器在不同的交互状态下更改 Navigation Drawer 中项目的背景颜色。

我将相同的代码复制到另一个项目中,它开始抛出一堆错误。日志如下

我检查了 minSdk 版本、编译的 sdk 版本、主题、gradle 版本、依赖关系及其版本等,一切都是一样的,没有什么不同。我知道我应该使用可绘制状态而不是颜色状态,但我不明白为什么它在其他项目中起作用,但在另一个项目中起作用。

编辑 1

我发现发生崩溃是因为我使用颜色状态选择器设置了 itembackground。itemIconTint 和 itemTextColor 适用于颜色状态选择器。每当我尝试在那里设置状态选择器时,只有 itemBackground 崩溃,所以我找到了这里提到的一个解决方案,基本上我需要添加检查 android:checkable="true",但即使在添加它之后它也会崩溃。我不知道为什么。

编辑 2

所以我意识到颜色状态选择器适用于较新版本的 android > 10,但不适用于旧版本的 android。

0 投票
0 回答
33 浏览

android - 触摸/单击 ListView 中的项目时,有时会丢失按下状态

我使用选择器来定义 ListView 中项目的状态

选择器.xml

在我的 item.xml 中,我使用 selector.xml 设置了背景

项目.xml

main_activity.xml

当我触摸/单击 ListView 中的项目时,有时会错过按下状态

我尝试使用android:listSelector="@drawable/selector"选择器背景或互联网上找到的解决方案

但有时当我触摸/单击 ListView 中的项目时,它仍然会错过按下状态(不显示按下的背景)

我想可能是 StateListDrawable 或 ListView 的问题

或者如果有人有类似情况,请帮忙

谢谢!

0 投票
0 回答
14 浏览

android - 如何根据 state_selected 更改视图的边距和填充

在我的 android 应用程序中,我有一个侧边栏,其中包含几个代表选项卡的片段。我希望侧边栏片段看起来不同,具体取决于是否选择了受尊重的选项卡。

我熟悉通过使用状态列表 drawable来更改视图的可绘制或颜色属性的选项,这很棒,我用它来更改背景颜色和文本颜色。

现在,如果选中,我希望选定的片段选项卡将其右边距减少到 0(甚至是负值,以隐藏边框)。是否可以用边距/填充做类似的事情?我在想像

android:marginRight="@dimen/my-state-selector"

这是应用程序的简化屏幕截图,用于上下文:

侧边栏截图