问题标签 [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 投票
0 回答
169 浏览

android - 在代码中将 StateDrawableList 设置为 ImageButton 与通过 xml 设置的结果不同?

我有下一个结果:

结果

右键:

xml_menu_button:

第二个按钮具有与配置类似的 xml。

左侧按钮动态添加到面板。所以我通过代码设置它的资源:

面板是自定义 ViewGroup。打开布局边界后,我可以看到,测量和布局阶段按照我的意愿通过了。但是如您所见,图像大小之间存在差异。所有按钮都具有相同的大小 70x58 像素。在布局中按钮的大小为 77x77。做错了什么?

0 投票
1 回答
847 浏览

c# - onCreateDrawableState 从未调用过

全部,

我有一个覆盖的 ViewGroup 子类OnCreateDrawableState()(Xamarin.Android 在 C# 中,所以请原谅 Pascal 套管)。

但是,我对 never 的覆盖OnCreateDrawableState()会被调用。我试过打电话RefreshDrawableState()DrawableStateChanged()RequestLayout(), 和Invalidate().

似乎没有任何效果。这是方法:

我认为它会正常工作 - 但它永远不会被调用。ViewGroup 本身嵌套在 aListView和/或 a中LinearLayout,但似乎没有任何帮助。

这个相关问题没有适合我的答案。

0 投票
1 回答
237 浏览

android - 手柄按钮按下状态

我在 android 应用程序中有一个按钮,该按钮带有一个TextView代表计数器(iOS 样式)的红色圆圈:

在此处输入图像描述

按钮是一个StateListDrawable,所以当按下时(视觉上)会略微下降。我希望伴随的红色圆圈也下降。

如果我能找到一个回调告诉我按钮何时进入按下或未按下(正常)状态,我会很高兴。我试过btn.setOnTouchListener了,但它不起作用。例如,当我按下按钮时,它会触发MotionEvent.ACTION_DOWN,这很好。但是,如果我将手指拖出按钮,它会跳回正常状态,但 MotionEvent.ACTION_UP 在我松开手指之前不会触发。

0 投票
3 回答
845 浏览

android - 从公共资源为自定义 ViewGroup 的多个组件创建 StateListDrawables

我创建了一个扩展 ViewGroup 的类。此 MyCustomViewGroup 类的功能之一是充当扩展 Button 的嵌套类 MyButton 的容器。

我以正常方式从自定义 AttributeSet 设置 MyCustomViewGroup 的自定义属性。其中一个属性定义了用于 MyButton 嵌套类实例背景的 StateListDrawable。我将它存储在一个类变量 mMyButtonBackground 中。

每次我在 MyCustomViewGroup 中创建 MyButton 的新实例时,我都会将其设置为背景。

在运行时,StateListDrawable 似乎只适用于最近添加的 MyButton 实例。

例如,假设我在 MyCustomViewGroup 中创建了 4 个 MyButton 实例。如果我单击 MyButton 数字 4,它的背景会发生在 StateListDrawable 中定义的变化。如果我单击 MyButton 1 到 3,它们的背景不会改变,但 MyButton 数字 4 会改​​变。

从逻辑上讲,这表明这是一个可变性问题。所有 MyButton 实例共享存储在 mMyButtonBackground 中的相同 StateListDrawable。考虑到这一点,我尝试过:

但这并没有解决问题。我还尝试将其专门转换为 StateListDrawable:

这也没有解决问题。在我试图解决这个问题的研究中,我已经阅读了 Romain Guy 关于 Drawable mutation 的这篇文章。我会认为由于 StateListDrawable 是 Drawable 的子类,我应该能够应用相同的方法,但我似乎无法让它工作。我错过了什么?

0 投票
1 回答
394 浏览

android - Android StateListDrawable 错误?

我有StateListdrawablexml

我有GridView 图像StateListDrawable,并以编程方式尝试更改可绘制状态

选择改变状态的图像,但是当我点击他的状态没有改变时,对不起,我无法解释我想要什么,我的英语更差

我试着解释一下

如果mSelected.contains(photo) [state - active] -> [checked_on.jpg]当我单击 -> 状态可绘制从第一个开始并忽略我的编程状态更改

==编辑==

适配器项目 --

0 投票
1 回答
7469 浏览

android - 为每个子视图将 duplicateParentState 设置为 true 的替代方法?

背景

我有一个布局,它有一些特殊状态(比如被选中/按下),我希望设置它的孩子基于这个布局应用他们自己的可绘制对象。

我正在寻找一种替代方法,为它的每个孩子(甚至可能是它的所有后代)设置duplicateParentState为 true。

我试过的

我试图使自定义视图具有将其设置为每个子级的属性,但我找不到在哪个方法调用中将此属性应用于其所有子级。在我尝试过的每种方法中,它要么为 getChildCount() 返回 0,要么对孩子本身不做任何事情(使用setDuplicateParentStateEnabled())。

问题

正如文档所说,使用 setDuplicateParentStateEnabled 在我需要它的情况下不会做任何事情:

注意:在当前实现中,将视图添加到 ViewGroup 后将此属性设置为 true 可能根本没有效果。在将此视图添加到 ViewGroup 之前,应始终从 XML 使用此属性或将其设置为 true。

所以看来我用得太晚了,但我需要把它叫晚,因为孩子们还不存在于父母中......

问题

如何实现避免为每个孩子设置 duplicateParentState 的功能,并将其设置为父视图?

0 投票
0 回答
276 浏览

android - 如何在打开时更改操作栏溢出菜单的可绘制对象

我想更改操作栏溢出项的可绘制对象,直到打开菜单。当我选择一个选项(因此菜单返回关闭)时,我想切换回默认可绘制对象。

我尝试了不同的“state_X”,但没有人工作。你能帮我吗?

谢谢

0 投票
0 回答
854 浏览

android - 如何从 StateListDrawable 中获取特定状态的可绘制对象?

我需要获取按钮的 StateListDrawable 的按下状态drawable。

我得到这样的 StateListDrawable:

StateListDrawable drawable = button.getBackground();

但是在下一步我要采取的步骤中,我在互联网上找不到任何有用的东西。

0 投票
1 回答
1376 浏览

android - 如何将颜色过滤器应用于 StateListDrawable 中的特定可绘制对象?

似乎StateListDrawable会忽略应用于它们包含的可绘制对象的颜色过滤器。例如:

如果您应用sld到视图的背景,您会期望视图的背景在按下时变为纯红色。相反,它会变成绿色——pressedState没有应用过滤器的颜色。

0 投票
1 回答
143 浏览

android - 单击时 TextView 的角变为白色

我使用以下代码片段来显示TextView

在正常状态下,它的外观是可以的: 在此处输入图像描述

但是当它被点击时,四个角会变成白色,看这个: 在此处输入图像描述

我怎样才能避免这种情况?