將原生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適應(yīng)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