多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > 為ListView同時設置點擊時的背景和點擊松手之后的背景

為ListView同時設置點擊時的背景和點擊松手之后的背景

來源:程序員人生   發布時間:2014-10-09 02:57:40 閱讀次數:2281次

本例要達到的效果是,

(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); }
并且在該ListView的點擊事件中及時更新selectedPosition:

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);

時,(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){ convertView.setBackgroundResource(R.drawable.selector_left_selected); }else{ convertView.setBackgroundResource(R.drawable.selector_left_normal); }

(二)

參照(一),將ListView的listSelector屬性去掉,并將其顏色復制到上面兩個selector中替換transparent那個顏色。

也就是說,每次點擊ListView的條目之后,設置背景色時,

(a)如果該條目現在是選中狀態,則直接設為某一個顏色

(b)否則,將其顏色設置為一個selector,并在selector中分別指定點擊和沒有點擊時的顏色。

問題圓滿解決。


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 午夜在线 | 欧美精品日韩 | 国内精品不卡一区二区三区 | 中文字幕欧美一区 | 边吃奶边操 | 亚洲成a人不卡在线观看 | 国产精久久一区二区三区 | 中国jizz18免费 | 明星三级国产免费播放 | 性色网| 亚洲视频在线看 | 国产精品久久99 | 毛片的网站 | 精品中文字幕不卡在线视频 | 噜噜噜在线视频 | 日本护士xxxxxx.| 久久成人网18网站 | 老司机午夜免费视频 | 国产精品三级视频 | 综合亚洲精品一区二区三区 | 中日韩欧美中文字幕毛片 | freesex性欧美重口 | 亚洲视频中文字幕在线 | 欧美一级特黄aa大片视频 | 欧美一区二区自偷自拍视频 | 91麻精品国产91久久久久 | 555www成人网| 亚州不卡 | 欧美一级看片免费观看视频在线 | 欧美三级小视频 | 亚洲嫩草影院在线观看 | 日本亚洲欧美在线 | 疯狂奶水freeseⅹ| 亚洲一区二区三区夜色 | 亚洲日韩精品欧美一区二区 | 亚洲精品永久www嫩草 | 2023国产视频| 亚洲 欧美 激情 另类 校园 | 黄网站色网址 | 欧美一区二区精品系列在线观看 | japanese高清广州国产 |