关于ScrollView中嵌套GridVIew只显示一行解决方法以及GridView行高计算方法
2015-09-07 17:38
507 查看
public class MyGridView extends GridView { public MyGridView(Context context, AttributeSet attrs) { super(context, attrs); } public MyGridView(Context context) { super(context); } public MyGridView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { //关键代码 int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } }
即可解决原来只显示一行gridview冲突。
我在开发时,因为第一二行高度小于下边的行的高度,以至于最低下边一二行被遮挡,偶尔还是可以滑动Gridview,这时出现滑动冲突。经了解,GridView默认测量高度是根据第一行测量。
例如:共有五行,要求第一行行高20dp,第二行至第五行都是40dp行高。
那么整个Gridview高度会是20*5=100dp,那么计划是20+40*4=180,那么第三行至第五行会显示不出来,需要竖向滚动才能显示,这会儿又出现跟原来ScrollView与Gridview嵌套冲突的问题。
请注意避免,另外也可以复写GridView的测量方式,实现自己目的。
相关文章推荐
- jsp和servlet的区别
- 4种必须知道的Android屏幕自适应解决方案
- ios 文件上传
- dTree 简介信息
- jsp页面跳转,WEB-INF
- 判断语句中,同一个字段多个or,会影响查询效率,可以改用in语句
- (第二周项目1)讨论函数参数传递的三种方式
- LINQ to SQL SqlMethods操作
- Android模块化编程之引用本地的aar
- 清除NSUserDefaults缓存
- IOS_oc 数组
- 生成GUID的两种方法
- jquery select
- Websphere安装程序的时候抛OutOfMemoryEror/Java head space
- 用php生成静态html页面
- 从慎独到“心学”
- MySQL数据类型
- WOJ 1538 B - Stones II
- 系统架构师考试大纲
- IOS 仿微信摇一摇