时间:2021-05-02
本文实例讲述了Android实现为ListView同时设置点击时的背景和点击松手之后的背景。分享给大家供大家参考。具体分析如下:
这里要达到的效果是,
(1)点击ListView的item时会有指定的背景,
(2)松手之后,刚才点击的item也会有指定的背景
实现(1)很简单:在xml中为ListView设置listSelector即可。
复制代码 代码如下: <ListView实现(2)也很简单,在adapter中动态改变背景:
复制代码 代码如下: if (position == selectedPosition){
并且在该ListView的点击事件中及时更新selectedPosition:
可是,问题出来了:设置了(2)之后,(1)的效果没了!!!
这是因为,在设置
时,(1)中listSelector中指定的颜色会被覆盖。
解决方法有两种:
(一)
将convertView的一个纯色的背景改为一个selector,并设置其在点击时的颜色为透明(这样下面listSelector的颜色就露出来了)。以下是selector_left_normal.xml和selector_left_selected.xml.
复制代码 代码如下: <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@android:color/transparent"/>
<item android:state_pressed="false"
android:drawable="@color/popup_left_bg"/>
</selector>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@android:color/transparent"/>
<item android:state_pressed="false"
android:drawable="@color/popup_right_bg"/>
</selector>
然后将(2)中的代码改为:
复制代码 代码如下: if (position == selectedPosition){(二)
参照(一),将ListView的listSelector属性去掉,并将其颜色复制到上面两个selector中替换transparent那个颜色。
也就是说,每次点击ListView的条目之后,设置背景色时,
(a)如果该条目现在是选中状态,则直接设为某一个颜色
(b)否则,将其颜色设置为一个selector,并在selector中分别指定点击和没有点击时的颜色。
问题圆满解决。
希望本文所述对大家的Android程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Android实现ListView的点击变色的实例我做了一个音乐播放器,其中用ListView显示歌曲列表,当我点击某一首歌时,希望这首歌所在的item的背景颜
本文实例讲述了Android编程简单实现ImageView点击时背景图修改的方法。分享给大家供大家参考,具体如下:在使用ImageView时,当被点击时,希望背
本文实例为大家分享了js实现点击上传图片,同时设该图片为模糊背景,供大家参考,具体内容如下效果展示:源码展示:js实现点击上传图片,同时设该图片为模糊背景inp
AndroidSimpleAdapter使用详解HolderAdapter背景Android的AdapterView用的比较多,ListView,GridVie
qq设置背景音乐的方法: 1、首先打开QQ空间,点击“背景音乐”选项。 2、然后在该页面中点击“添加网络背景音乐”选项。 3、之后在该页面中将百度音乐中获