本文实例讲述了Android实现为ListView同时设置点击时的背景和点击松手之后的背景。分享给大家供大家参考。具体分析如下:
这里要达到的效果是,
(1)点击ListView的item时会有指定的背景,
(2)松手之后,刚才点击的item也会有指定的背景
实现(1)很简单:在xml中为ListView设置listSelector即可。
<ListView android:id="@+id/pop_listview_left" android:layout_width="match_parent" android:layout_height="wrap_content" android:scrollbars="none" android:divider="@color/popup_left_bg" android:dividerHeight="1dp" android:listSelector="@color/popup_right_bg" android:scrollingCache="false" />
实现(2)也很简单,在adapter中动态改变背景:
if (position == selectedPosition){ convertView.setBackgroundResource(R.color.left_selected); }else{ convertView.setBackgroundResource(R.color.left_normal); }
leftLV.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //更新背景色 FirstClassAdapter adapter = (FirstClassAdapter) (parent.getAdapter()); adapter.setSelectedPosition(position); adapter.notifyDataSetChanged(); } });
可是,问题出来了:设置了(2)之后,(1)的效果没了!!!
这是因为,在设置
convertView.setBackgroundResource(R.color.left_selected);
解决方法有两种:
(一)
将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){ convertView.setBackgroundResource(R.drawable.selector_left_selected); }else{ convertView.setBackgroundResource(R.drawable.selector_left_normal); }
(二)
参照(一),将ListView的listSelector属性去掉,并将其颜色复制到上面两个selector中替换transparent那个颜色。
也就是说,每次点击ListView的条目之后,设置背景色时,
(a)如果该条目现在是选中状态,则直接设为某一个颜色
(b)否则,将其颜色设置为一个selector,并在selector中分别指定点击和没有点击时的颜色。
问题圆满解决。
希望本文所述对大家的Android程序设计有所帮助。
本文向大家介绍jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例,包括了jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例的使用技巧和注意事项,需要的朋友参考一下 废话不多说,直接上代码吧 效果截图: 以上这篇jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大
本文向大家介绍JavaScript实现点击图片换背景,包括了JavaScript实现点击图片换背景的使用技巧和注意事项,需要的朋友参考一下 JS制作网页–点击图片换背景,供大家参考,具体内容如下 网页中有四个图片,点击不同的图片,更换相对应的背景。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
我有一个FragmentActivity,它可以包含用户想要的任意多个ListFragments。ListFragments在HorizontalScrollView中并排排列(在ActionBar中选择一个选项时)。每个ListFragment项都包含一个TextView和一个按钮。单击按钮可更改按钮的ViewParent(包含按钮和TextView的线性布局)的背景色。 现在,单击每个List
本文向大家介绍js实现仿网易点击弹出提示同时背景变暗效果,包括了js实现仿网易点击弹出提示同时背景变暗效果的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js实现仿网易点击弹出提示同时背景变暗效果。分享给大家供大家参考。具体如下: 这里仿网易点击弹出提示,背景变暗提示层效果,圆角,美观简洁,代码稍嫌多。 运行效果如下图所示: 在线演示地址如下: http://demo.jb51.net/j
本文向大家介绍js实现点击切换checkbox背景图片的简单实例,包括了js实现点击切换checkbox背景图片的简单实例的使用技巧和注意事项,需要的朋友参考一下 在制作网页的过程中,经常需要实现点击切换背景图片的效果,本文关注的是表单中checkbox背景图片切换的实现。如图,在输入用户名和密码后,用户需要选择是否记住密码 图片背景为白色表示未勾选状态 ,背景为蓝色表示勾选状态 。 HTML源码
本文向大家介绍AngularJs点击状态值改变背景色的实例,包括了AngularJs点击状态值改变背景色的实例的使用技巧和注意事项,需要的朋友参考一下 实例如下: 以上这篇AngularJs点击状态值改变背景色的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。