现在的位置: 首页 > 综合 > 正文

ListView里面包含checkbox怎么获得itemclick事件的支持

2013年11月25日 ⁄ 综合 ⁄ 共 701字 ⁄ 字号 评论关闭
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="300px"
    android:layout_height="200px"
    android:orientation="vertical" >
	
    <TextView 
        android:id="@+id/tv_dialog_item"
        android:layout_width="200px"
        android:layout_height="fill_parent"/>
    
    <CheckBox 
        android:layout_width="100px"
        android:layout_height="fill_parent"/>
    
</LinearLayout>

listview显示出来后,发现失去了setOnItemClickListener的支持,原来是当ListView里面存在CheckBox控件的时候android会默认把focus交给这些控件,导致ListView无法得到焦点

解决方法 : 在<LinearLayout >布局里面加入代码  android:descendantFocusability="blocksDescendants"  意思是会覆盖子类控件而直接获得焦点

其中还有两个属性值:  afterDescendants:viewgroup  只有当其子类控件不需要获取焦点时才获取焦点;  beforeDescendants:viewgroup 会优先其子类控件而获取焦点

抱歉!评论已关闭.