文章目錄
前言
在項目的開發過程中,需要Listview的Item中包含按鈕的效果。在實際開發過,Item中放置按鈕後,ListView 單行選擇背景顏色變化的效果沒有了。
問題原因
ListView 和 其它能觸發點擊事件的widget無法一起正常工作的原因是加入其它widget後,ListView的itemclick事件將無法觸發,被其它widget的click事件屏蔽。
目前網路上普遍的解決方式
設定1 在Item的xml模板中設定 根布局 屬性
android:descendantFocusability= "blocksDescendants"
如下:
< RelativeLayout>
android:descendantFocusability= "blocksDescendants"
設定2 在按鈕控制項<ImageButton>中設定屬性
android:focusable = "false"
補充:這種設定後,點擊按鈕,整條Item都響應點擊效果,顯示的效果非我們需要的
我們的需要的效果
1 ListView的Item本身可以選擇
2 Item中的按鈕可以隨意點擊,不會干擾Item
實現的過程
在ListView中用圖片控制項,或者文本控制項,來代替圖片按鈕和普通按鈕,並在Adapter中設定點擊事件就可以
如例:
//根據資料項目,設定點擊文字框的文字,並設定點擊事件 TextView txt_Remember=(TextView)convertView.findViewById(R.id.txt_Remember); txt_Remember.setOnClickListener(new TextView.OnClickListener() { public void onClick(View v){ LibListViewAdapter.this.remove(LibListViewAdapter.this.getItem(1)); } });
效果:
附:
《科學背單詞-四級版》安卓市場:http://static.apk.hiapk.com/html/2012/07/719368.html