ScrollView嵌套GridView,GridView显示不全
来源:互联网 发布:java时间轴代码 编辑:程序博客网 时间:2024/05/16 14:59
在ScrollView里布局GridView时,GridView显示往往是以单行显示出来。这是由于GridView和ScrollView里都有滑动属性。
ScrollView无法判断GridView里的item高度是多少,于是只显示单个Item的高度,也就是单行显示了,剩下内容被隐藏了。
要解决的这个问题需要重新测量GridView的高度,下面是一个自定义的GridView控件
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); }}
在xml里布局该控件
<com.yourclass.MyGridView android:id="@+id/gridView" android:layout_width="wrap_content" android:layout_height="wrap_content" //......这里不再赘述了,自己自行定义 />
MyGridView gridview = (MyGridView) findViewById(R.id.grid_view);
这里解释一下。
MeasureSpec代表着一组控件的宽高,MeasureSpec.makeMeasureSpec(int size,int mode)方法是根据提供的大小值和模式创建一个测量值(格式)。
在源代码里可以看到这个:
public static int resolveSize(int size, int measureSpec) { int result = size; int specMode = MeasureSpec.getMode(measureSpec); int specSize = MeasureSpec.getSize(measureSpec); switch (specMode) { case MeasureSpec.UNSPECIFIED: result = size; break; case MeasureSpec.AT_MOST: result = Math.min(size, specSize); break; case MeasureSpec.EXACTLY: result = specSize; break; } return result; }
MeasureSpec.AT_MOST模式是返回Math.min(size, specSize)给其他函数,也就是返回Integer.MAX_VALUE >> 2和控件的之间的最小值。当我们正常使用不超过极限值时,返回的就是控件的大小。ScrollView收到GridView的大小,就给GridView全部展开显示了。
感谢:
原文链接:http://blog.csdn.net/loongago/article/details/51078031 仅供个人学习使用。如侵犯了您的利益,请联系作者删除:Q337081267
阅读全文
0 0
- ScrollView嵌套GridView,GridView显示不全
- ScrollView嵌套GridView,GridView显示不全
- ScrollView嵌套GridView显示不全解决方法
- ScrollView中嵌套GridView时显示不全
- ScrollView嵌套GridView显示不全的解决办法
- scrollview嵌套gridview显示不全解决办法
- 处理ScrollView嵌套GridView显示不全问题
- ScrollView嵌套Gridview显示不全的问题
- ScrollView嵌套listView,嵌套Gridview显示不全的解决办法
- 解决ScrollView下嵌套ListView、GridView显示不全的问题
- 解决ScrollView下嵌套GridView显示不全的问题
- 解决ScrollView下嵌套ListView、GridView显示不全的问题
- 解决ScrollView下嵌套ListView、GridView显示不全的问题
- android ScrollVIew中嵌套GridView,和ListView显示不全解决方法
- 解决ScrollView下嵌套ListView、GridView显示不全的问题
- 解决ScrollView下嵌套ListView、GridView显示不全的问题
- 解决ScrollView下嵌套ListView、GridView显示不全的问题
- 解决ScrollView下嵌套ListView、GridView显示不全的问题
- wannafly挑战赛4
- MySQL--字符串长度
- web开发入门课---web技术发展历程
- HDU_2010水仙花数
- Android等待动画
- ScrollView嵌套GridView,GridView显示不全
- @Controller vs @RestController
- Anca Dragan CoRL 演讲解读:机器人与人类如何相互影响及更好协作?
- Could not parse configuration: /hibernate.cfg.xml的解决方案
- CCF 201709-2 公共钥匙盒 Java
- mysql导出数据库
- css3基础知识+流式布局
- 滤波算法
- 【二分答案 && 贪心】codeforces-847EPackmen