微调器在显示下拉列表时的状态是什么?

Max*_*ido 2 android android-widget

我正在创建一个带有自定义视图的微调器,无论如何我设法显示不同的drawables当微调器处于非活动状态时以及当它被按下时,我希望在下拉列表显示时保持按下状态可绘制.这是mi XML文件:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_focused="true"
      android:state_pressed="false"
      android:drawable="@drawable/ComboBoxInactive" />
  <item android:state_focused="true"
      android:state_pressed="true"
      android:drawable="@drawable/ComboBoxActive" />
  <item android:state_focused="false"
      android:state_pressed="true"
  android:drawable="@drawable/ComboBoxActive" />
  <item android:drawable="@drawable/ComboBoxInactive" />
</selector>
Run Code Online (Sandbox Code Playgroud)

在显示下拉列表时我应该添加什么状态?我想让它显示ComboBoxActive drawable.我已经尝试添加这个:

  <item android:state_enabled ="false"
        android:drawable="@drawable/ComboBoxActive"/>
Run Code Online (Sandbox Code Playgroud)

知道国家是什么吗?

Ole*_*kin 7

没有android:state_dropdown_showing状态.微调器下拉列表中唯一的一个状态是state_enabled ="true"

您可以使用我的选择器来区分下拉列表状态

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- disabled state -->
<item android:state_enabled="false" android:drawable="@drawable/spinner_off"/>
<!-- pressed state -->
<item android:state_enabled="true" android:state_window_focused="true" android:state_pressed="true" android:drawable="@drawable/spinner_pressed"/>
<!-- unselected state -->
<item android:state_enabled="true" android:state_window_focused="true" android:drawable="@drawable/spinner_default"/>
<!-- dropdown list state -->
<item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/spinner_dropdown_list_is_shown"/>
<!-- default -->
<item android:drawable="@drawable/spinner_default"/>
</selector>
Run Code Online (Sandbox Code Playgroud)

不要忘记在微调器上设置setFocusable和setFocusableInTouchMode属性.

  • 描述的解决方案不起作用,当微调器下拉显示时,背景不会改变... (2认同)