当这三种控件相互嵌套时会出现 里外都有滚动条,只能显示一行的情况,我当时也遇到这样子的问题,在网上查了很多资料,很多都是说直接动态的计算出子view的高度并为其在layutparam 中指定高度,我尝试过,确实可以实现,但计算可能会很繁锁,并且会有部分小误差,后来才发现有个很简单的解决方法
就是重写父view(ScrollView,GridView、ListView)的onMeasure方法,具体操作如下:
/**
* 设置不滚动
*/
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
![效果图](https://img-my.csdn.net/uploads/201205/24/1337842504_8573.png)