解决ScrollView下嵌套ListView/GridView进页面不在顶部的问题以及数据显示不全的问题( 只显示一行)
Posted ZeroFlutter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决ScrollView下嵌套ListView/GridView进页面不在顶部的问题以及数据显示不全的问题( 只显示一行)相关的知识,希望对你有一定的参考价值。
在网上看到如下的解决方案,我现在定义了多个listview,所以出现了有时候起作用有时候不起作用,错误的解决方法如下:
- 错误解决方案1:
- 错误解决方案2:
正确解决方案,重写
ScrollView
,添加如下方法
- 正确解决方案:
/**
* 禁止ScrollView内布局变化后自动滚动
*/
@Override
protected int computeScrollDeltaToGetChildRectOnScreen(Rect rect)
return 0;
解决了上面的问题,其实在ScrollView镶嵌listview/gridView中最常见的一个问题就是,数据显示不全的问题,网上有如下错误的做法,也是我刚开始做android项目当时的错误解决方法:
- 错误解决方法1:
正确的解决方案就是重写listview或者gridview
- 正确几觉方案:
/**
* 防止listview和gridview、ScrollView的冲突
* @author zsl
* @blog http://blog.csdn.net/yy1300326388
*
*/
public class MyListView extends ListView
public MyListView(Context context, AttributeSet attrs)
super(context, attrs);
//防止数据显示不全
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
以上是关于解决ScrollView下嵌套ListView/GridView进页面不在顶部的问题以及数据显示不全的问题( 只显示一行)的主要内容,如果未能解决你的问题,请参考以下文章
Android -- 每日一问:如何解决ScrollView嵌套中一个ListView的滑动冲突?
Android -- 每日一问:如何解决ScrollView嵌套中一个ListView的滑动冲突?
解决ScrollView中嵌套ListView滚动效果冲突问题