ScrollView嵌套使用ListView的解决办法

将原生ListView替换为下方自定义的,即可解决问题,GridView同理

/**
 * Created by wgd on 2018/6/11.
 */
public class ListViewForScrollView  extends ListView{
    public ListViewForScrollView(Context context) {
        super(context);
    }

    public ListViewForScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public ListViewForScrollView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
    @Override
    /**
     * 重写该方法,达到使ListView适应ScrollView的效果
     */
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }
}

简单介绍一个原理:
这种解决方法是代表,让ListView自己填充高度,那么在测量方法中,就需要在onMeasure按照测量机制传值。
具体分析:参考博客https://www.cnblogs.com/RabbitLx/p/5858031.html

你可能感兴趣的:(ScrollView嵌套使用ListView的解决办法)