29 状态选择器

本文详细解析了Android中ListView状态选择器的工作原理,通过XML配置实现不同状态下的背景图片切换,包括未聚焦、触摸按下、聚焦等状态,并提供了两种实现方法及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1 <?xml version="1.0" encoding="utf-8"?>  
 2 <selector xmlns:android="http://schemas.android.com/apk/res/android">  
 3   
 4     <!-- 没有焦点时的背景图片 -->  
 5     <item android:drawable="@drawable/handle_normal" android:state_enabled="true" android:state_window_focused="false"/>  
 6     <!-- 触摸模式按下时的背景图片 -->  
 7     <item android:drawable="@drawable/handle_pressed" android:state_pressed="true"/>  
 8     <item android:drawable="@drawable/handle_focused" android:state_enabled="true" android:state_focused="true"/>  
 9     <item android:drawable="@drawable/handle_normal" android:state_enabled="true"/>  
10     <!-- 获得焦点时的图片背景 -->  
11     <item android:drawable="@drawable/handle_focused" android:state_focused="true"/>  
12   
13     <!--  
14     android:state_selected是选中  
15     android:state_focused是获得焦点  
16     android:state_pressed是点击  
17     android:state_enabled是设置是否响应事件,指所有事件  
18     -->  
19   
20 </selector>

使用xml文件:

1.方法一:在listview中配置Android:listSelector="@drawable/xxx
或者在listview的item中添加属性android:background="@drawable/xxx"

2.方法二:Drawable drawable = getResources().getDrawable(R.drawable.xxx);  
       ListView.setSelector(drawable);但是这样会出现列表有时候为黑的情况,需要加上:android:cacheColorHint="@android:color/transparent"使其透明。

转载于:https://www.cnblogs.com/YyuTtian/p/5440465.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值