当你使用ScrollView嵌套ListView、GridView、ViewPager等时,你会发现里面的东西显示不全或者完全不显示(ViewPager),对于这种情况,有两种方式。
对于ListView和GridView这种显示不全的情况,你可以重写一个继承自他们的类,重写onMeasure方法:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
当你解决了这个问题之后,你会发现有一个后遗症,就是每次显示都会跳到ListView或者GridView的最下面,解决方法就是,在ListView或GridView的子父容器中添加android:descendantFocusability="blocksDescendants"这个属性。