最近开发,由于业务需要,使用了ScrollView里面嵌套LinearLayout布局,希望能是LinearLayout填充满整个屏幕,
但是LinearLayout设置android:layout_height="match_parent"还是一直不能填充满整个布局,设置权重也不行,然后在网上查到:当ScrollView里的元素想填满ScrollView时,使用"fill_parent"或者"match_parent"是不管用的,必需为ScrollView设置:android:fillViewport="true"。
当ScrollView没有fillVeewport=“true”时, 里面的元素(比如LinearLayout)会按照wrap_content来计算(不论它是否设了"fill_parent"或者"match_parent"),而如果LinearLayout的元素设置了fill_parent,那么也是不管用的,因为LinearLayout依赖里面的元素,而里面的元素又依赖LinearLayout,这样自相矛盾.所以里面元素设置了fill_parent,也会当做wrap_content来计算.
这里自己记录一下,防止以后再出现相同的错误,共勉。
代码如下:
<!--主屏幕-->
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:scrollbars="none"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!--这里写自己的布局-->
</LinearLayout>
</ScrollView>