ScrollView和ListView嵌套显示不完全

来源:互联网 发布:python xpath教程 编辑:程序博客网 时间:2024/05/17 02:13

ScrollView和ListView的嵌套是非常常见的,虽然现在使用RecycleView比较多,但是道理是一样的,我们非常常见的一个问题就是:导致ListView上数据显示不完全
解决思路:
[1]自定义一个类继承自ListView,通过重写其onMeasure方法,
[2]给super.onMeasure()参数传宽高两个期望的时候的高的size给一个较大的值,可以给个Integer.Max_VAlue,然后模式给个at_Most,
[3]然后调用MeasureSpec的静态方法,makeMeasureSpec传入模式和size拿到新的高的期望值,再传入进去,
[4]达到对ScrollView适配的效果
具体如下:
我们自定义一个ListView

public class ListViewForSc extends ListView{    public ListViewForSc(Context context) {        super(context);    }    public ListViewForSc(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }    public ListViewForSc(Context context, AttributeSet attrs) {        super(context, attrs);    }    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {heightMeasureSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>2, MeasureSpec.AT_MOST);//传入一个较大值,模式AT_MOST        super.onMeasure(widthMeasureSpec, heightMeasureSpec);    }}

问题解决.
虽然道理很简单,身边的朋友还是有人问起,所以记录一下.

0 0
原创粉丝点击