问题标签 [android-selector]

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 回答
4867 浏览

android - android ColorStateList 以编程方式创建并应用于 TextColor

我正在尝试将通过代码创建的 ColorStateList 应用为 TextView 的 TextColor。问题是,如果我使用在 xml 中定义的 ColorStateList,它可以工作,但是当我通过代码创建 ColorStateList 时不起作用。

这是我创建 ColorStateList 的方式

我以这种方式简单地将它应用于 TextView

并且不起作用。使用这个 xml

它可以通过这种方式在xml中设置文本颜色并通过代码

我已经在网上搜索了一个解决方案,但我真的找不到导致这个问题的原因,有人可以帮助我吗?

谢谢你

0 投票
1 回答
833 浏览

android - 选择器可绘制对象

我对 android 样式和选择器应用了以下定义ListView,但是当我单击它时,我看不到应用灰色渐变的效果。单击它会立即显示蓝色渐变。

正如这个例子的作者所写:

我们想把它应用到我们的列表选择器上。我们希望渐变在每次按下列表项时将其起始颜色从灰色更改为浅蓝色,而不是始终显示相同的渐变。因为我们现在有两个不同的列表选择器——一个用于默认状态,一个用于按下状态——我们需要将它们保存在单独的文件中。

有人可以解释它应该如何正确显示吗?或者我错过了什么?
更一般地说,我应该期望在显示屏上看到什么?列表项单击时从灰色渐变到蓝色渐变的流畅过渡?

更新:这就是作者“看到”它的方式,但是当我点击项目时,它看起来只在图片的右侧。我可以假设作者希望默认情况下列表中的所有项目都是灰色的吗?或者这种状态不适用于列表视图项?

list_item_default.xml -> 灰色渐变

list_item_pressed.xml -> 蓝色渐变

list_selector.xml

样式.xml

0 投票
1 回答
744 浏览

android - 当它的下拉菜单在android中打开时,是否可以使用选择器来更改微调器的背景?

我创建了一个包含微调器的布局并注入到我的操作栏的自定义视图中。

我希望 actionbar_spinner_background 成为具有两种状态的选择器 - 在微调器打开和关闭时有效 - 但我找不到任何检测方法。我已经经历了每个状态(state_focused 等),发现只有以下似乎有效(因为下拉菜单是一个弹出窗口),但问题是当任何东西覆盖我的应用程序时,微调器会改变状态,因为例如当状态栏被下拉时。

我在这里这里也看到过类似的 stackoverflow 问题,但它们都指的是“android:state_dropdown_showing”,它似乎已经很久没有可用了(顺便说一句,我的最低 api 级别是 14),而且here,这可能是一个稍微不同的用例,但无论如何都没有答案。

目前我似乎能想出的最佳计划是覆盖我的活动的 onWindowFocusChanged() 事件,检查下拉菜单窗口/布局是否存在,然后调用 setActivated() (或类似的东西设置状态)在微调器视图上。

0 投票
1 回答
5686 浏览

android - 如何使用自定义选择器状态实现 CustomView?

我想创建一个CustomView显示图像的。单击时,视图应更改其状态。视图可以表示三种状态(关闭、设置、未设置) 。我想用XML 中的选择器来做到这一点。它不一定需要是自定义选择器。我可以重用选择器的三种状态(然后状态的名称是否不同并不重要)。

有没有好的方法来实现这一目标?

0 投票
0 回答
200 浏览

android - Android ListView 单击单个项目会为列表视图的选择器单击所有项目

我有一个名为 AmazingListView 的 ListView,我为这个 ListView 分配了一个选择器。例如,在Android 4.1.2 中,没有问题,但在Android 2.3.6 中,当我点击一个项目时,所有项目都显示为已点击。在点击事件和指定方法的调用中,没有问题。我认为这源于选择器。我将我的列表视图和选择器放在下面,感谢您的帮助:


这是选择器中指定的颜色:

也可能需要这个“getAmazingView”方法:

未点击时: https ://www.dropbox.com/s/iu3epknzutpa4jq/device-2014-02-21-175429.png

点击时: https ://www.dropbox.com/s/xv9285pcb7wuzp9/device-2014-02-21-175449.png

什么时候

谢谢..

0 投票
2 回答
850 浏览

android - GridView 选择不适用于自定义布局

我的应用程序中有一个 GridView,具有以下项目布局:

现在,如果用户单击它,我想选择一个项目。我试过这段代码:

但是现在如果我点击一个项目,背景很快就会变成黄色并且消失。所以当我点击一个项目而不是选择时,选择器正在工作。你有什么想法为什么?

0 投票
3 回答
1530 浏览

android - 选中的Android listviewItem边框颜色

我将有一个包含一些项目的列表视图,当我在列表视图中选择一行时,它应该有一个边框。那么我怎样才能实现这样的目标。
我试试这个。但只有当我按下行时它才有效

这是我的行

0 投票
1 回答
3613 浏览

android - Android GridView 选择器问题

我在我的应用程序中使用了一个由我创建的自定义选择器的 StaggeredGridView,但我的选择器一定有一些严重错误,因为当我在 gridview 中选择一个项目时,所有项目的颜色都会变为绿色。

这是gridview项目的代码:

这是我的选择器:

这是我的适配器类:

在我的片段中:

关于为什么它可能是错误的任何想法?

0 投票
5 回答
75499 浏览

android - 按钮 - 单击时更改背景颜色

我的活动中有 8 个按钮。我正在寻找的是,按钮具有默认背景,当单击按钮时,背景颜色应更改为其他颜色。这部分非常简单。但是,当我单击任何其他按钮时,第一个按钮的背景颜色应该变回默认颜色。我知道这将使用“选择器状态”来完成,但我不太确定如何实现它。我读得越多,我就越困惑。

现在,我拥有的 xml 如下:在 drawable 文件夹中

xml 中的 drawable/image_border 用于定义按钮的形状。下面是image_border.xml

有人可以帮助我如何更改 xml 以按照我需要的方式行事吗?

[编辑 1]

以下所有答案都指向类似的解决方案。这是我所做的更改。但是,当我按下按钮时,它会变成指定的颜色,但会立即变回默认颜色。

button_background_blue.xml

image_border_blue.xml

有什么想法吗?

0 投票
0 回答
743 浏览

android - 以编程方式更改选择器内图层列表中形状的颜色

如果按钮的背景设置为 a shape drawable,我们可以通过调用 (GradientDrawable) findDrawableByd(R.drawable.some_shape).setColor(someColor);.

如果它设置为 a layer-list drawable,我们可以通过调用来实现改变它的颜色

我想更深一层。如何以编程方式设置位于选择器中的图层列表中的可绘制形状的颜色?

使用上面的代码片段可以了。它实际上看起来非常错误。我设置了多个对话框片段,可以按顺序更改按钮的颜色。虽然第一个 dialogFragment 总是正确着色,但其余部分通常不是。我想强调一点,当按钮的背景设置为图层列表时,一切正常如果设置为选择器,它会有点问题。