Android ScrollView嵌套GridView导致GridView只显示一行item

Android ScrollView在嵌套GridView时候,会导致一个问题发生:GridView只显示一行。比如,在一个大的根ScrollView里面套一个根、大的垂直线性布局,此线性布局里面有若干子View,GridView只是其中之一,那么当这个大xml写成的布局在初始化加载后,GridView只显示一行,这种情况是因为在Android的体系设计中,由于ScrollView和GridView本身都是滚动View导致互相冲突引起。
在上述开发情景中,如果打算完全展开GridView,其中一个解决方案就是继承GridView加以改造重写GridView,然后使用这个重写的这个GridView:

package zhangphil.sample.view;import android.content.Context;
import android.util.AttributeSet;
import android.view.ViewGroup;
import android.widget.GridView;/*** Created by Phil on 2016/8/18.*/
public class ExpandableGridView extends GridView {boolean expanded = true;public boolean isExpanded() {return expanded;}public ExpandableGridView(Context context) {super(context);}public ExpandableGridView(Context context, AttributeSet attrs) {super(context, attrs);}public ExpandableGridView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);}@Overridepublic void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {if (isExpanded()) {int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);super.onMeasure(widthMeasureSpec, expandSpec);ViewGroup.LayoutParams params = getLayoutParams();params.height = getMeasuredHeight();} else {super.onMeasure(widthMeasureSpec, heightMeasureSpec);}}public void setExpanded(boolean expanded) {this.expanded = expanded;}
}

在这个重写改造后的GridView里面增加了判断是否完全伸展开的状态值,可以set是否完全伸展。
如果expanded为true,那么初始化加载后就完全展开这个GridView的所有子item;
如果expanded为false,那么就退化成Android原生的GridView只显示一行。
根据自己项目的实际开发场景设置expanded的初始值为true或false,通常在开发中是希望GrdiView完全展开的,那就直接用我写好的代码就可以了。
不仅ScrollView在嵌套GridView时候会引起GridView不能展开只显示一行,实际上当ListView与GridView嵌套时候,也会引起这个问题,解决方案之一还是用我的这个重写后的GridView而非Android系统原生的GridView。

附录:
1,《Android GridView子元素item按击交互设计:背景颜色改变》链接:http://blog.csdn.net/zhangphil/article/details/46048583

转载于:https://www.cnblogs.com/hehehaha/p/6147265.html

Android ScrollView嵌套GridView导致GridView只显示一行item相关推荐

  1. Android Scrollview嵌套RecyclerView导致滑动卡顿问题解决(屡试不爽)

    今天开发的一个项目首页,布局还是比较复杂的,各种滑动冲突,(Banner+横向RecyclerView+纵向RecyclerView(item又是横向的RecyclerView)),  最外面的框架用 ...

  2. Android ScrollView嵌套RecyclerView导致在三星s8曲面屏显示不全问题

    当RecyclerView适配显示不全时可以单独给其嵌套一个相对布局!!!(必须是相对布局),这样在曲面屏手机就可以全部显示出来如下图所示 <RelativeLayoutandroid:layo ...

  3. ScrollView 里面嵌套 listview 使得listview只显示一行问题解决

    2019独角兽企业重金招聘Python工程师标准>>> 方法一,最直接的方法就是删除 ScrollView控件 方法二:写个工具类动态设置listview的高度 public cla ...

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

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

  5. android中ScrollView嵌套ListView或GridView显示位置问题

    Android中ScrollView中嵌套ListView或GridView时在开始进入界面时总是显示中间位置,开头的位置显示不出来.这种情况下只需要在ScrollView的父控件中添加以下两行代码即 ...

  6. Android之解决ScrollView嵌套RecycleView导致滑动冲突或者显示不全的问题

    1 问题 ScrollView嵌套RecycleView导致滑动冲突或者显示不全的问题 2 解决办法 1).ScrollView替换成普通布局,然后RecycleView用的BaseMultiItem ...

  7. Scrollview嵌套PreferenceFragment导致Fragment高度异常问题

    Scrollview嵌套PreferenceFragment导致Fragment高度异常问题 起因 解决过程 结果 起因 为了在普通布局中嵌入多个switchpreference,自然就使用了Pref ...

  8. Android ScrollView嵌套ScrollView滚动的问题解决办法

    引用:http://mengsina.iteye.com/blog/1707464 http://fenglog.com/article.asp?id=449 Android ScrollView嵌套 ...

  9. Android图片太大导致无法正常显示

    Android图片太大导致无法正常显示 原因 安卓中有个内存的限制,超过这个限制后资源是无法显示的 解决办法 在全局配置文件中进行对内存的配置[关键:android:largeHeap="t ...

最新文章

  1. Shell特殊变量含义
  2. python编程基础语法-Python编程入门基础语法详解
  3. oracle 的float(b)转
  4. PHP中文件操作基础:目录操作,文件操作
  5. python中xml模块_python常用模块之xml模块
  6. 数据可视化|实验二 分析特征间关系
  7. 知乎问答:一年内的前端看不懂前端框架源码怎么办?
  8. CCS实例,网页栏目
  9. linux内核参数调优,缓冲区调整,tcp/udp连接管理,保持,释放优化,gossary,terms
  10. 计算机考研复试之计算机网络
  11. FreeRTOS可视化追踪软件 —— 破解Tracealyzer 4.2.12
  12. 三星手机使用应用沙盒动态修改sdk数据
  13. 【每天学点管理学】目标管理工具——SMART法则
  14. vue给html加背景图,Vue背景图如何全屏显示
  15. JustSoSo复现
  16. pythontext函数用法汇总_Python - Text Summarization
  17. 文件描述符fd和文件指针File* fp的区别和转换
  18. 29岁转行程序员,39岁成为总裁,宫崎英高的游戏成名之路!
  19. 零售行业陈列管理系统
  20. PHP-实现类和对象

热门文章

  1. 图像处理讲解-以CNN对图像进行分类为例
  2. 2019自媒体仍然在风口浪尖上,适合所有人的技巧方法,不看后悔!
  3. JS高级之静态成员和实例成员
  4. 如何在阿里技术面试中脱颖而出?(内部资料)
  5. ubuntu安装mysql5.7_Ubuntu安装mysql5.7(诲人不倦,记点干货)
  6. 知识图谱 (2)半结构化数据的知识抽取
  7. gitlab搭建与基本使用
  8. 帮我写一个口才老师的招聘JD
  9. Arduino 震动感应灯
  10. jsp 展示服务器pdf文件,pdf在线预览_jsp实现pdf在线预览功能