如果Listitem里面包括button或者checkBox等控件,默认情况下Listitem会失去焦点,导致无法响应item的事件,最常用的解决办法是在Listitem的布局文件中设置descendantFocusability属性。
item的布局文件:
<?xml version="1.0" enCoding="utf-8"?> <relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:paddingtop="10dp" androID:paddingBottom="10dp" androID:paddingleft="5dp" androID:paddingRight="5dp" androID:descendantFocusability="blocksDescendants"><!--添加这个属性--> <CheckBox androID:ID="@+ID/history_item_checkbt" androID:layout_height="30dp" androID:layout_wIDth="wrap_content" androID:layout_centerVertical="true" androID:layout_alignParentleft="true" androID:checked="false" > </CheckBox> <ImageVIEw androID:ID="@+ID/history_item_image" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_centerVertical="true" androID:layout_toRightOf="@ID/history_item_checkbt" androID:background="@drawable/item_icon"> </ImageVIEw> <button androID:ID="@+ID/history_item_edit_bt" androID:layout_alignParentRight="true" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_centerVertical="true" androID:text="编辑" androID:textcolor="#ffffff" androID:textSize="14sp" androID:background="@drawable/button_bg"> </button> <TextVIEw androID:ID="@+ID/history_item_time_tv" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_centerVertical="true" androID:textcolor="#565C5D" androID:textSize="14sp" androID:text="10-01 10:20" androID:layout_marginRight="5dp" androID:layout_toleftOf="@ID/history_item_edit_bt"> </TextVIEw> <TextVIEw androID:ID="@+ID/history_item_Title_tv" androID:layout_height="wrap_content" androID:layout_wIDth="fill_parent" androID:layout_centerVertical="true" androID:textcolor="#565C5D" androID:textSize="14sp" androID:text="xxxxxxxxXXXXXXXXXXXXXXXX" androID:ellipsize="end" androID:maxlines="1" androID:layout_toRightOf="@ID/history_item_image" androID:layout_toleftOf="@ID/history_item_time_tv" androID:layout_marginleft="3dp"> </TextVIEw> </relativeLayout>
androID:descendantFocusability
defines the relationship between the VIEwGroup and its descendants when looking for a VIEw to take focus.
Must be one of the following constant values.
该属性是当一个为vIEw获取焦点时,定义vIEwGroup和其子控件两者之间的关系。
属性的值有三种:
beforeDescendants:vIEwgroup会优先其子类控件而获取到焦点
afterDescendants:vIEwgroup只有当其子类控件不需要获取焦点时才获取焦点
blocksDescendants:vIEwgroup会覆盖子类控件而直接获得焦点
我们使用的是第三个。
总结以上是内存溢出为你收集整理的Android 中ListView点击Item无响应问题的解决办法全部内容,希望文章能够帮你解决Android 中ListView点击Item无响应问题的解决办法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)