sle*_*ica 12 android android-layout android-view
我遇到了麻烦View.setSelected().Views被标记为已选中 - TextViews例如,更改其字体颜色 - 但我的背景选择器似乎没有注册更改.
示例选择器:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/transparent" />
<item android:state_selected="true">
<shape android:shape="rectangle">
<solid android:color="#ff8600" />
</shape>
</item>
</selector>
Run Code Online (Sandbox Code Playgroud)
我甚至不确定哪种上下文信息会有用.视图是LinearLayout的子视图,我以编程方式在触摸事件中设置所选状态.正如我所说,它确实有效,因为字体颜色从白色变为灰色,但背景保持不变.
编辑:我在发布之前检查过愚蠢的错误:P.答案不是"添加android:background属性".
不仅所选的州秩序很重要,即使所有州的顺序都很重要.在我的情况下,我state_pressed首先添加,我没有state_selected工作.所以我改变了这样的顺序,然后它起作用了:
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:state_selected="false"
android:drawable="@drawable/chooser_normal"></item>
<item
android:state_selected="true"
android:drawable="@drawable/chooser_pressed"></item>
<item
android:state_pressed="true"
android:drawable="@drawable/chooser_pressed"></item>
<item
android:state_pressed="false"
android:drawable="@drawable/chooser_normal"></item>
</selector>
Run Code Online (Sandbox Code Playgroud)
我现在也遇到了问题,如果我按下按钮,它将处于选择状态但不处于按下状态.因此,解决方案必须是,为了订购这样的状态和其他状态,最好添加默认按钮外观:
首先,设置所选状态,然后交替设置与按下状态相同.(目前,stackoverflow没有完全显示我的编辑,不知道为什么,请耐心等待).
| 归档时间: |
|
| 查看次数: |
23529 次 |
| 最近记录: |