我们直接入主题。所有问题例子请参照下图

1,怎样使图片具有点击事件?

答:

解决方法:

在你的BaseAdapter里面不要设置下面这三个东西,然后再设置GridView的onItemClick。

gridView.setClickable(false);

gridView.setPressed(false);

gridView.setEnabled(false);

2,为什么我在已经处理了listView点击事件阻断的情况下,同时图片具有点击事件,此时再点击和图片同高度的空白处,却无法执行listView的item点击事件,点击其它非同高度地方,例如点击文字却可以。

答:

原因:

GridView 格子中的View 有点击事件,证明你没阻断,之所以点击和图片同高度的空白处没有执行 listView 的点击事件是你的GridView 霸占了整行,即使你的格子只有一个,验证我这句话就是给GridView 设置个背景,若非如此请留言,我帮你 fix。

解决方法:

动态给你的 GridView 设置宽度,不要使用 Wrap_Parent 等.

3,如何动态地给嵌套在Listview 里面的 GridView 设置宽、高度?

答:

解决方法:

GridView 没有setWidth() 等操作,你必须使用 setLayoutParams() 来搞定。

4,为什么我给 GridView 设置了setLayoutParams() 后被抛出强转类型失败异常,程序崩溃?


答:

原因/解决方法:

如果你的 GridView 是某个View 的子 View,例如你使用 LinearLayout 包裹 GridView,那么你的GridView要设置的 setLayoutParams() 所传入的 LayoutParams 必须要是LinearLayout。即是

ViewGroup.LayoutParams linearParams =new LinearLayout.LayoutParams((70,70);

gridView.setLayoutParams(linearParams);    否则抛出异常。

5,为什么我动态设置了 GridView 的宽度后,发现 格子 有错位、重叠、间隙太大、很丑很没幸福感的现象?

答:

原因:

宽度、间隙太大--你的 GridView 如果使用默认的排版方式,即是如果你是没有设置 gridView.setStretchMode(GridView.NO_STRETCH); 的话,那么它就是把宽度平均分来显示每个格子的,这样会造成。解决方法是设置GridView.NO_STRETCH,然后是自定义格子宽度和间隙。或者设置好 GridView的宽度。

重叠、遮挡的现象--如果你设置了GridView.NO_STRETCH,那么就可能会出现重叠、遮挡的现象,解决方法是动态测量设备宽度再使用等比例来设置理想格子宽度,既不影响格子的点击,又能相应 ListView 的Item 点击,例如:

int myWidth = 80; // 这个值是你的显示图片的宽度,例如我的ImageView,我设置了它宽为80dp,那么就是80

int distance = 3;//这个是每个格子之间的 间隙

int userPhoneWidth = 设备的宽度; // 自己使用代码获取

int myPhoneWith = 1080 ; // 这个是你测试的设备的宽度,我的是1080

公式计算,先声明下,上面4个值一旦确定了就适用于所有设备,因为采用的是等比缩放,也测试过。

(其他手机的理想格子宽度)/userPhoneWidth = myWidth/myPhoneWith,简单化简后:

理想格子宽度 = userPhoneWidth * myWidth / myPhoneWith

gridView.setHorizontalSpacing((userPhoneWidth+3) * 最大格子数 * myWidth / myPhoneWith); //采用GridView.NO_STRETCH 后设置间距

6,为什么我 点击文字下面的部分 无法执行 listView 的 item 点击事件?

答:典型的事件阻断,针对这种的解决方法,百度上面大把解决方法。我这里不罗嗦。

最终,我项目的 ListView 嵌套 GridView 后的效果是满足上述所有想要的效果。

android 之 ListView 里面嵌套 GridView 遇到的问题及其解决方法。相关推荐

  1. Android在ListView中嵌套一个GridView时只显示一行的原因及解决方法

    在之前的编程里,我还没有遇到过要在一个ListView中嵌套一个GridView或是在一个GridView中嵌套一个ListView.所以今天事儿来了!我花了一将近3个小时,找到了为什么我在一个Lis ...

  2. android删除打开方式,Android 打开方式选定后默认了改不回来?解决方法(三星s7为例)...

    Android 打开方式选定后默认了改不回来?解决方法(三星s7为例) 刚刚在测试东西,打开一个gif图,然后我故意选择用支付宝打开,然后...支付宝当然不支持,我觉得第二次打开它应该还会问我,没想到 ...

  3. android Run模式也会出现Waiting for debugger的解决方法

    android Run模式也会出现"Waiting for debugger"的解决方法 出现"waiting for debugger"窗口是在debug模式 ...

  4. Android DialogFragment 遇到 java.lang.IllegalStateException: Fragment already added: 的解决方法

    Android DialogFragment 遇到 java.lang.IllegalStateException: Fragment already added: 的解决方法 参考文章: (1)An ...

  5. Android Studio Design界面不显示layout控件的解决方法

    Android Studio Design界面不显示layout控件的解决方法 参考文章: (1)Android Studio Design界面不显示layout控件的解决方法 (2)https:// ...

  6. Android studio:Button 按钮英文字符自动大写的解决方法

    Android studio:Button 按钮英文字符自动大写的解决方法 一.方法一:styles.xml文件里面添加<item name="textAllCaps"> ...

  7. android动态设置软键盘弹出模式,Android 弹出软键盘所遇到的坑及解决方法

    重要代码: //1.此layout作为最外层的layout: //2.设置需要调整的view: setAdjustView(View view); //3.如果需要控制输入框的显示与隐藏,可以实现On ...

  8. android:paddingTop=“@dimen/activity_horizontal_margin“报错(报红)解决方法

    android:paddingTop="@dimen/activity_horizontal_margin"报错(报红)解决方法 在app----->res-----> ...

  9. Android 关于ListView中按钮监听的优化问题(方法二)

    关于ListView中按钮监听的优化问题(方法一)地址: http://www.cnblogs.com/steffen/p/3951901.html 之前的方法一,虽然能够解决position的传递, ...

最新文章

  1. python十大标准_python对标准类型的分类
  2. layuiajax提交表单控制层代码_究竟怎么用Restful风格编代码必看这篇。(二)
  3. 为什么应该放弃或减少使用MD5
  4. python中os.listdir()的使用和文件批量重命名方法
  5. HDU 1754线段树
  6. hibernate中报错could not initialize proxy - no Session的解决方法
  7. Docker镜像备份与迁移
  8. 重构碎片化知识_day22重构力-思维导图:让碎片化知识的零存整取
  9. android的图片缩放,Android图片缩放总结及比较
  10. CentOS 7安装docker环境
  11. translucent 属性
  12. sql 获取数据库字段信息_使用DBATools获取SQL数据库详细信息
  13. Flume学习应用:Java写日志数据到MongoDB
  14. ajax 上传文件 data,ajax文件上传-FormData()
  15. csdn 挣积分和c币方法指南
  16. 交叉编译JRTPLib库
  17. SWFUpload批量上传插件
  18. 超清视频制作:视频补帧+超分辨率
  19. C语言基础学习——基本数据类型(Int型)
  20. 考研数学 第7讲 零点问题和微分不定式

热门文章

  1. 比较不错的一个ios找茬游戏源码
  2. Oracle常用系统表
  3. struts1.2文件上传
  4. Docker 修改运行中的容器端口映射
  5. hdu 5020 求三点共线的组合数(容器记录斜率出现次数)
  6. 【Windows 逆向】内存地址分析 ( 动态地址 | 静态地址 | 偏移量 )
  7. 【Android 安全】DEX 加密 ( DEX 加密原理 | DEX 加密简介 | APK 文件分析 | DEX 分割 )
  8. 前端读者 | 别人写的css,你敢用吗?
  9. 前端开发之JavaScript基础篇四
  10. 手机pc显示不同的内容