问题标签 [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.
android - 使用自定义 StateListDrawable 查看不呈现
我想根据视图的选定状态动态选择 Drawable。我使用布尔状态而不是字符串,因为根据这篇文章不支持字符串。以下是代码详细信息:
attrs.xml
selector_driver_state.xml
状态视图.kt
用法:
问题是StateView
没有渲染。我尝试以编程方式设置状态,但使用setStateBusy
. 有什么线索吗?谢谢你。
java - 为什么 ColorStateList 不适用于 GradientDrawable?
我正在尝试使用为不同状态设置的GradientDrawable设置TestView背景。当对GradientDrawable使用方法:setStroke和setColor(获取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(它不是我设置的状态的一部分)。有人可以帮我解决这个问题吗?谢谢
android - Android中基于状态的fontFamily
StateListDrawables 并且非常适合为视图的每个状态设置不同的可绘制对象,但是有没有办法绑定视图应该为每个状态使用的文本样式?
例如,如果您有一个 fontFamily 为“sans-serif-medium”的按钮,当获得焦点时,该按钮fontFamily变为“sans-serif-light”。我可以想象我将如何使用代码来做到这一点,但是有没有一种方法可以使用类似于用于可绘制对象的 XML 来做到这一点?
android - Android StateListDrawable 未更改为 state_pressed
我有一个具有 3 种状态(按下、选择和默认)的自定义可绘制对象。在 Android Studio 预览中切换状态时,按下状态不会触发对可绘制对象的任何更改。选定的状态按预期工作。我在专注状态下也经历过这种行为, state_checked 似乎正在工作。在我为测试目的创建的另一个绘图中,一切都按预期工作,即使状态的顺序完全相同。
具有错误行为的自定义可绘制对象:
具有相同顺序和正确行为的自定义可绘制对象:
android - Jetpack Compose State List Drawable 等效项
StateListDrawable
在 Jetpack Compose中获得 a 功能的最佳方法是什么?
android - 无法在导航中使用颜色状态列表查看 Android kotlin
我有两个项目,一个在 NavigationView 中使用颜色状态列表选择器在不同的交互状态下更改 Navigation Drawer 中项目的背景颜色。
我将相同的代码复制到另一个项目中,它开始抛出一堆错误。日志如下
我检查了 minSdk 版本、编译的 sdk 版本、主题、gradle 版本、依赖关系及其版本等,一切都是一样的,没有什么不同。我知道我应该使用可绘制状态而不是颜色状态,但我不明白为什么它在其他项目中起作用,但在另一个项目中起作用。
编辑 1
我发现发生崩溃是因为我使用颜色状态选择器设置了 itembackground。itemIconTint 和 itemTextColor 适用于颜色状态选择器。每当我尝试在那里设置状态选择器时,只有 itemBackground 崩溃,所以我找到了这里提到的一个解决方案,基本上我需要添加检查 android:checkable="true"
,但即使在添加它之后它也会崩溃。我不知道为什么。
编辑 2
所以我意识到颜色状态选择器适用于较新版本的 android > 10,但不适用于旧版本的 android。
android - 触摸/单击 ListView 中的项目时,有时会丢失按下状态
我使用选择器来定义 ListView 中项目的状态
选择器.xml
在我的 item.xml 中,我使用 selector.xml 设置了背景
项目.xml
main_activity.xml
当我触摸/单击 ListView 中的项目时,有时会错过按下状态
我尝试使用android:listSelector="@drawable/selector"或选择器和背景或互联网上找到的解决方案
但有时当我触摸/单击 ListView 中的项目时,它仍然会错过按下状态(不显示按下的背景)
我想可能是 StateListDrawable 或 ListView 的问题
或者如果有人有类似情况,请帮忙
谢谢!
android - 如何根据 state_selected 更改视图的边距和填充
在我的 android 应用程序中,我有一个侧边栏,其中包含几个代表选项卡的片段。我希望侧边栏片段看起来不同,具体取决于是否选择了受尊重的选项卡。
我熟悉通过使用状态列表 drawable来更改视图的可绘制或颜色属性的选项,这很棒,我用它来更改背景颜色和文本颜色。
现在,如果选中,我希望选定的片段选项卡将其右边距减少到 0(甚至是负值,以隐藏边框)。是否可以用边距/填充做类似的事情?我在想像
android:marginRight="@dimen/my-state-selector"
这是应用程序的简化屏幕截图,用于上下文: