关于ListView嵌套GridView中的onItemClickListener失效问题
一开始在ListView中设置了onItemClickListener,在里面Log输出Item列表的位置,完全没有反应,
网上大部分说的什么把子组件屏蔽掉(而且好多都是转载的一样的),
可是我希望的就是要用到子组件,所以这个方法治标不治本
能否同时即监听到子组件,又监听到ListView本身呢?(未找到解决办法)
所以只能找其他解决办法了...
开始以为是与onTouch这个方法有冲突,
参考了:http://blog.csdn.net/jiangwei0910410003/article/details/17504315
但是把onTouch事件注释掉后问题没有解决,猜想可能是GridView的onItemClickListener获取了焦点,导致
ListView的onItemClickListener无法获取焦点,从而导致点击事件无法识别
后来一想,我只是想在点击事件中获取ListView的Item的位置而已,在GridView的onItemClickListener获取到也是
可以的,所以自己应该可以重写一个OnItemClickListener接口不就ok了吗
参考:http://my.oschina.net/gluoyer/blog/182322
就重写了一个OnItemClickListener接口,然后问题得以解决
private class OnItemChildClickListener implements OnItemClickListener {
// 点击类型索引,对应前面的CLICK_INDEX_xxx
private int clickIndex;
// 点击列表位置
private int rowItem;
public OnItemChildClickListener(int clickIndex, int position) {
this.clickIndex = clickIndex;
this.rowItem = position;
}
/**
* 点击缩略图事件
*/
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
if (i) {
imgGroup = new ArrayList<ImageInfo>();
imgGroup = imageInfoMap.get(timeMap.get(rowItem));
Log.e("ListViewAdapter2", Integer.toString(position));
Log.i("ListItem position",Integer.toString(rowItem));
String fileName = imgGroup.get(position).getPath();
File file=new File(fileName);
Intent it =new Intent(Intent.ACTION_VIEW);
Uri mUri = Uri.parse("file://"+file.getPath());
it.setDataAndType(mUri, "image/*");
i = false;
activity.startActivity(it);
activity.finish();
} else {
i = true;
}
}
}
//调用
gv = (MyGridView) convertView.findViewById(R.id.gridview1);
gv.setAdapter(new GridViewAdapter(context, position,timeMap,imageInfoMap));
gv.setOnItemClickListener(new OnItemChildClickListener(0, position));
不知道还有没有其他什么好的解决ListView的按键监听被子组件覆盖的方法,有待研究~
关于ListView嵌套GridView中的onItemClickListener失效问题的更多相关文章
- ScrollView嵌套ListView嵌套GridView的上下拉以及加载更多
ScrollView 效果 ScrollView 说明 一个ScrollView 嵌套ListView 嵌套GridView的上拉加载更多,下拉刷新的demo. 主要是重写了GridView和Lsit ...
- android listView嵌套gridview的使用心得
在开发的过程中可能需要用到listview嵌套gridview的场景,但是在Android中, 不能在一个拥有Scrollbar的组件中嵌入另一个拥有Scrollbar的组件,因为这不科学,会混淆滑动 ...
- ListView嵌套GridView
首先,我们通过两个实例来了解下本篇文章所讲的重点,看下图: 微博: 陌陌: 大家应该对这两款软件并不陌生,接下来,我将列举下本文将要实现的几个点: 1.ListView嵌套GridView,互不冲突, ...
- ListView嵌套GridView使用详解及注意事项
ListView嵌套GridView即ListView的每个Item中都包含一个GridView:需要注意的是由于ListView和GridView都是可滑动的控件. 所以需要自定义GridView, ...
- Flutter中用ListView嵌套GridView报错异常
flutter中的ListView组件和GridView组件都是常用的布局组件,有时候ListView中需要嵌套GridView来使用,例如下图: 这种情况就需要在ListView里面再嵌套一个Gri ...
- 【Android】listview 嵌套gridview报错,代码:”during second layout pass: posting in next frame
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985, QQ986945193 公众号:程序员小冰 说明:本人曾经在listview嵌套gridview出现 ...
- ListView嵌套GridView,显示不全解决办法
ListView嵌套GridView时,遇到了GridView只显示一行,其余都显示不出来的问题,最终解决办法如下: 需要自定义GridView,重新绘制高度即可: public class MyGr ...
- div中嵌套div中使用margin-top失效问题
div中嵌套div中使用margin-top失效问题
- Android中ListView嵌套GridView的简单消息流UI(解决宽高问题)
最近搞一个项目,需要用到类似于新浪微博的消息流,即每一项有文字.有九宫格图片,因此这就涉及到ListView或者ScrollView嵌套GridView的问题.其中GridView的高度问题在网上都很 ...
随机推荐
- Mac OS finder : 显示和隐藏文件[夹] show and hide files or folders
Finder默认是不显示隐藏文件[夹]的,要显示出怎么办? 要显示的话,可以GUI(graphic user interface)和CLI(command line interface)两种方式 CL ...
- Android 常用工具类之 ScreenUtil
需求: 截屏 参考 : Android开发:截屏 screenshot 功能小结 package bvb.de.openadbwireless.utils; import android.app ...
- linux信号机制 - 用户堆栈和内核堆栈的变化【转】
转自:http://itindex.net/detail/16418-linux-%E4%BF%A1%E5%8F%B7-%E5%A0%86%E6%A0%88 此文只简单分析发送信号给用户程序后,用户堆 ...
- 微信清理H5真的太早了?这会是应用号发布的前兆吗
三少爷的剑 2016-04-18 21:05 收藏35 评论7 两天之内,整个 H5 游戏创业陷入了两年狂热期以来最冷的冰点. 每一个正在忙于 H5 小游戏开发的开发者都在忙于砍掉游戏代码中有关 ...
- 13、mysql/触发器
1. mysql mysql基础 1)mysql存储结构: 数据库 -> 表 -> 数据 sql语句 2)管理数据库: 增加: create database 数据库 default ...
- ASP.NET MVC3 Dynamically added form fields model binding
Adding new Item to a list of items, inline is a very nice feature you can provide to your user. Thi ...
- ectouch第六讲 之表常用链接
ECTouch1.0 常用链接:精品属性商品mobile/index.php?m=default&c=category&type=best 新品属性商品mobile/index.php ...
- hdwik中view模块的应用
概述 MVC中的视图view 主要负责页面显示部分,所有的页面显示全部在此实现,视图对整个页面负责,它通过control的调用来显示页面和数据.视图(view)类template.cla ...
- android相机调用及存储详解
package com.firefly.six; import java.io.File; import java.io.FileInputStream; import java.io.FileNot ...
- Android 静默安装
有时候我们需要软件实现静默安装,但是Android并未提供相应的API,然而我们知道命令行安装android的时候是不会提示用户的,所有要实现这个功能,我们就可以从执行命令行的方式实现.android ...