日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

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

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

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

本例要達到的效果是,

(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中分別指定點擊和沒有點擊時的顏色。

問題圓滿解決。


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 毛片无码国产 | 男人天堂av网站 | 日韩视频一区二区 | www精品| 中文字幕在线观看免费 | 国产视频a | 日韩在线视频播放 | 99精品国产成人一区二区 | 日韩三级精品 | 国产a毛片 | 日韩欧美国产一区二区 | 成人欧美一区二区三区在线湿哒哒 | 久久久精品久久久 | 一级毛片国产 | 精品国产凹凸成av人导航 | 久久亚洲高清 | 三级欧美 | 一区二区三区在线播放 | 美日韩av| 五月婷婷天| 国产成人福利在线 | 免费的黄色在线视频 | 欧美成人一区二区 | 成人欧美一区二区三区视频网页 | 88国产精品视频一区二区三区 | 99久久精品国产一区二区三区 | 亚洲aav | 婷婷综合在线观看 | 91看片在线免费观看 | 久久福利一区二区 | 免费电影天堂 | 欧美日本韩国一区二区三区 | 日韩激情在线观看 | 最近的中文字幕在线看 | 一区二区三区在线免费视频 | 国产精品18久久久久久久网站 | 日韩精品成人在线观看 | 国产精品国产三级国产aⅴ中文 | 亚洲精品wwwww| www.超碰在线 | 日韩精品免费在线观看 |