昨天在项目中遇到一个以前没遇到过的问题,就是ScrollView的match_parent不起作用了。所以记录一下
开始的时候我的布局是:
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
...same view
</LinearLayout>
</ScrollView>
LinearLayout里面嵌套的布局高度写死了,刚好是铺满整个屏幕的,所以这样写没什么问题然而,昨天设计要改一下效果图,需要将LinearLayout里面的布局的高度写成wrap_content的,这是就出现了问题,发现现在的布局叠加了,根本没有铺满全屏!!!OMG当时蒙圈了...
开始一直怀疑是布局写的有问题,然后接下来的半个小时一直在改布局然并卵啊,怎么改布局还是不能铺满全屏!!!所以google了一下,发现了ScrollView的**android:fillViewport="true"**这个属性。把它加上,哇~~铺满全屏了,好开心...到这并没有结束,我们要搞明白这个属性是干啥子用的。源码中的注释:
/**
* When set to true, the scroll view measure its child to make it fill the currently
* visible area. */
@ViewDebug.ExportedProperty(category = "layout")
private boolean mFillViewport;
这个属性如果设置为true,ScrollView就会测量它的子view,使它的子view填充当前的可见区域