GridView的点击事件冲突解决
来源:互联网 发布:芜湖java招聘 编辑:程序博客网 时间:2024/06/05 18:54
在开发的时候,经常可能遇到ListView或GridView控件点击事件与Item点击事件冲突的问题。原因是Item布局中的button或ImageButton强制获取了item的焦点,解决方式之一是:只要设置Item布局中的button的focusable为false即可,另外可以在Item布局的根节点添加属性android:descendantFocusability="blocksDescendants"也可以解决。
今天在开发一界面的时候遇到了点击事件冲突问题,并不是I控件本身与Item上的控件冲突,而是控件的本身与其header(比如ListView可以添加Header)中的事件冲突,用上面的方法就解决不了。先贴下界面情况,图是随便画的,请勿喷!
如上图,主要是头部的GridView与本身控件PullToRefreshGridViewWithHeaderAndFooter及其它部分控件的事件冲突,头部GridView的onItemClick()事件非常不灵敏,甚至无效,除非先点击其它部分,再点击GridView的item才有效。试了各种 方式都无效,后来就用了一个最原始的方法,就是把每一个Item的点击事件放在GridView的适配器adapter中来处理,冲突问题就没有了。
adapter中的主要代码 :
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
convertView = LayoutInflater.from(context).inflate(R.layout.product_category_list_item, null);
holder.categoryRela=(RelativeLayout) convertView.findViewById(R.id.index_category_rela);//是在item的根结点设置的id
convertView.setTag(holder);
}
else {
holder = (ViewHolder) convertView.getTag();
}
holder.categoryRela.setOnClickListener(new OnClickListener() {//这里设置的点击事件
@Override
public void onClick(View v) {
EventBus.getDefault().post(new CategoryItemEvent(pos));
}
});
return convertView;
}
- GridView的点击事件冲突解决
- listview或gridview中item的点击事件与控件点击事件冲突的解决
- expandablelistview、listView嵌套gridview点击事件冲突解决
- Android:ListView中嵌入GridView,处理点击事件的冲突
- 一种解决滑动事件和点击事件冲突的方法
- ListView嵌套GridView 点击事件冲突
- ListView嵌套GridView 点击事件冲突
- android ListView嵌套GridView事件冲突的解决
- 解决 UITableViewCell的点击事件和手势的冲突问题
- 解决 cell的点击事件和触摸手势的冲突
- 解决ListView的Item包含Button的点击冲突事件
- 解决UITapGestureRecognizer手势与UITableView的点击事件的冲突
- 解决触控点击事件和手势的冲突
- UITapGestureRecognizer和UIButton的点击事件冲突解决
- 解决触控点击事件和手势的冲突
- 解决Listview的item和里面控件点击事件冲突
- 解决触控点击事件和手势的冲突
- tableView的点击事件或textfield 与手势冲突解决
- Difference between enabled and userInteractionEnabled properties
- 企业级搜索应用服务器Solr4.10.4部署开发详解(1)- Solr入门-安装部署
- android 如何解决scrollTo无法执行
- Spring面试题
- iOS录音实践
- GridView的点击事件冲突解决
- zoj3699 Dakar Rally (单调队列+贪心)
- Xcode unable to dequeue a cell with identifier
- 悟空学Linux专栏----第4篇
- 什么是Code Review
- 统计ASCII码的高效代码(代码随笔)
- Android Cursor返回结果数为0的几种方法
- 将第三方APK文件编译进入img
- 寄存器操作