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

android - 选定视图的默认选择器

我认为这个问题说明了一切:如果我调用,是否有一个默认选择器@android/drawable可以设置为我的视图的背景:

我想使用android的默认颜色,但在自定义选择器中我只能添加自己的drawables。是否有默认选择器?或者我可以访问默认的可绘制对象,以便我可以在我自己的选择器中使用它们?

我试过了,android:background="?android:attr/selectableItemBackground"但如果我打电话view.setSelected(true);什么也没发生。

0 投票
0 回答
221 浏览

android - Android:在选择器中使用属性

我正在尝试创建一个使用由所选主题定义的属性的选择器。

attrs.xml

选择器.xml

主题:

部分布局文件:

显现

布局文件被setContentView方法膨胀。

现在的问题是 textcolorRED处于未按下状态(按下时为黑色)。似乎找不到buttonTextColor并使用默认值RED(?)

已经尝试将主题设置为应用程序上下文,但没有运气..

提前致谢。

0 投票
2 回答
6886 浏览

android - 在 ExpandableListView 中为父项和子项使用自定义选择器

我有看起来像这样的可扩展列表:

在此处输入图像描述

橙色项目是子项,当您按特定父项时显示。蓝色项目是父母。我使用这个自定义适配器来创建这个:(我在论坛的某个地方选择了这个源代码)

这些是 xml 文件:

list_item.xml

list_group.xml

这就是我指定实际列表的方式:

这是按钮按下的选择器:

最近我改变了整个应用程序的外观,在我在列表中的项目上添加这些边框之前一切都很好。但现在我想改变选择器对组项目的行为方式(仍然使用矩形),并且对孩子不同(使用某种椭圆来填充这个橙色椭圆而不是列表项的整个矩形)

我怎样才能做到这一点?我想我可以设法制作带有形状的 xml 可绘制对象以放在选择器上,但是我如何分离父选择器和子选择器?

编辑:如果您需要任何其他源代码,请发表评论。

进步:

在@Omar 的帮助下,我设法创建了适用于组选择器的代码。(但是使用两个线程来实现选择器消失的效果有点愚蠢,我必须通过activity中的静态引用来访问它)

我还发现可以通过修改选择器 xml 中的第一项来实现这一进展(上图)。那么有没有办法在该xml中为选择器指定子选择器?

0 投票
1 回答
1430 浏览

android - Android - 以编程方式设置背景选择器状态

我有一个包含 EditText 和 ImageView 的线性布局。我给 EditText 一个 @null 背景,并给 LinearLayout 一个背景:

使它看起来像整个事情是一个小部件。当 EditText 获得焦点/被选中时,我想更新线性布局的背景可绘制对象以显示整个内容已被选中。

我的线性布局的布局 XML:

这是我用来尝试在 EditText 聚焦时更改 LinearLayout 的背景状态的代码:

除了使用 FOCUSED_STATE_SET,我还尝试了以下方法:

以上似乎都没有将 LinearLayout 的背景更改为蓝色下划线。任何帮助,将不胜感激!

0 投票
2 回答
1418 浏览

android - ListView 中自定义可检查元素的初始状态“已检查”

我正在尝试使用自定义“可检查”元素构建清单。我能够显示列表,选中复选框(它是一个 ImageView)并将每个复选框的状态保存在数据库中。

不幸的是,当我打开一个清单时,我想用一些选中的复选框来初始化清单,但我不能。它不起作用。


截图

这是我打开清单时的屏幕:

android 屏幕显示一个未选中每个复选框的清单

图例:显示一个未选中每个复选框的清单的 android 屏幕

我使用 .setEnabled(true/false) 方法来直观地显示不同的状态(用于调试目的)。

基本上,当我作为用户勾选复选框时,它看起来像这样:

选中复选框的 android 屏幕

图例:选中复选框的 android 屏幕


等级制度

  • 源代码
    • com.checkit.app(包)
      • CheckableLinearLayout.java
      • 任务活动.java
      • TasksAdapter.java <= (我认为问题可以在这个文件的某处解决)
      • [...]
  • 资源
    • 可绘制的
      • ic_hideable_item.xml
    • 可绘制的 mdpi
      • btn_check_off.png
      • btn_check_on.png
      • [...]
    • 布局
      • 活动任务.xml
      • task_items.xml
      • [...]

代码

任务适配器.java

CheckableLinearLayout.java

ic_hideable_item.xml

活动任务.xml

task_items.xml


更多的

以下是我想说的一些事情:

  • checkboxGlobal.setEnabled(true);正如我们在屏幕截图(灰色标题)中看到的那样,效果很好。但checkboxGlobal.setChecked(true);似乎没有效果(?)
  • 有一次,我试过Drawable drawable = convertView.getResources().getDrawable(R.drawable.ic_hideable_item);跟着checkboxImg.setImageDrawable(states);. 使用选中的复选框初始化复选框可以完美地工作,但是无法取消选中该框。

编辑 2014-03-12:我的代码基于来自“Android 开发者”网站的官方代码示例(参见项目“CustomChoiceList”,可在此处获得:http: //developer.android.com/samples/CustomChoiceList/index.html。 html ).

编辑 2014-03-13 :删除不必要的代码,以提高可读性

在此先感谢您的帮助。随意询问您是否需要更多代码。真诚的,托尼

0 投票
0 回答
92 浏览

android - Android 颜色列表选择器可以级联吗?

如果我有一个名为 color_list_1 的颜色列表,如下所示:

我希望能够创建另一个名为 color_list_2 的颜色列表:

这允许我做的是有一个控件 Foo,它使用 color_list_1 作为颜色。现在我可能想创建一个名为 AmazingFoo 的子类,我想保持与 Foo 相同的外观,除了我还想给它添加一个按下的颜色。

我已经尝试过了,但似乎在使用 color_list_2 作为颜色时,color_list_1 中的状态被忽略了。这意味着按下状态有效(因为它直接在 color_list_2 中)但是当它回退到 color_list_1 时,焦点状态始终为 false,因此返回默认颜色。

我知道控件没有问题,因为使用 color_list_1 效果很好。只有当我将它级联到另一个颜色列表中时,所有状态才会返回 false。

0 投票
1 回答
746 浏览

android - 如何从布局视图触发选择器?

问题

假设您在布局视图中有一个视图,并且您希望布局上的每个触摸事件都会影响视图的背景选择器。

例如,当您触摸布局时,视图的选择器将选择 state_pressed 状态。

我试过的

我已经阅读过有关 duplicateParentState 和 addStatesFromChildren 的信息,但我认为这与我正在寻找的相反。

我也尝试过使用 splitMotionEvents,但没有帮助。

问题

你怎么做到这一点?

此外,如果布局位于 listView 内(作为其中的一个项目),应该怎么做?

0 投票
1 回答
469 浏览

android - StateListDrawable padding

I have problem with padding in StateListDrawable. If for some in my styles i define reference on some <selector> with image resources, it set some wrong padding for my 9path images. By the way i set particular image - all is ok. But otherwise, android create StateListDrawable for my <selector> and (as i saw by using debugger on sources) it get padding by use method:

and return wrong values (in my case it not null or 0). This method use mVariablePadding variable:

But i can't set it false in resources (maybe i did something wrong).

Does someone know solution for this problem? Thanks!

0 投票
5 回答
5885 浏览

android - Android ImageView 选择器不起作用

这是我的选择器:

这就是我在 ImageView 上应用它的方式:

现在,问题是,当我按下 ImageView 时,相应的状态可绘制图像不会改变。我已经在其他 wigdet 上尝试过,也不起作用。我不知道为什么,因为我曾经这样做过,而且它有效。

当它被点击时,我已经监控了 imageview 的状态。

v.hasFocus():假,v.isClickable():真,v.isInTouchMode():真,v.isEnabled():真,v.isPressed():真


我犯了一个可怕的错误,white_small_down_arrow_v4 和 white_small_up_arrow_v4 实际上指向同一个方向,换句话说,它们是同一张图片。

所以,如果他们发现选择器不起作用,可能我的错误会对其他人有所帮助,首先要做的是检查状态可绘制对象是否相同......

0 投票
2 回答
1412 浏览

android - Android:相对布局选择器不起作用

我正在使用带有选择器资源 xml 的相对布局来突出显示点击时的相对布局。但它不会突出显示点击时的相对布局。下面我放了相应的选择器 xml、布局 xml 和可绘制对象。

布局代码片段:

选择器 xml 文件:

请在这件事上给予我帮助,

先感谢您。