您的位置:首页 > 其它

ListView中点击冲突解决方法

2016-07-19 18:05 183 查看

1.了解setDescendantFocusability的作用

该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。

属性的值有三种:

        beforeDescendants:viewgroup会优先其子类控件而获取到焦点

        afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

        blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点


2.使用方式有两种


1.Java代码动态设置

在listview的adapter中 getView()方法里面添加如下代码:

public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder holder;
if(view==null){
view= LayoutInflater.from(mContext).inflate(R.layout.list_view_item,viewGroup,false);
holder = new ViewHolder(view);
view.setTag(holder);
}
holder = (ViewHolder) view.getTag();
((ViewGroup)view).setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
initData(holder,i);
return view;
}

2.在listview自定义item根布局里面添加如下属性:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:descendantFocusability="blocksDescendants"
android:layout_height="match_parent">
<Button
android:layout_width="100dp"
android:layout_height="48dp"
android:id="@+id/lv_item_tv"
android:gravity="center"
></Button>
</LinearLayout>

通过以上两种方式都可以解决listview点击事件冲突问题

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  listview 点击冲突