今天在调整布局时遇到一个奇怪的问题,在scrollview下加入的组件无论如何也不能自动扩展到屏幕高度,最后对布局文件进行简化,最终得到最简layout配置内容如下:
01.<?xml version="1.0" encoding="utf-8"?>
02.
03.<!-- 背景:蓝色 -->
04.<ScrollView android:layout_width="fill_parent" android:id="@+id/scrollView1"
05. xmlns:android="http://schemas.android.com/apk/res/android"
06. android:layout_height="fill_parent" android:background="@color/solid_blue">
07.
08. <!-- 背景:黄色 -->
09. <LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent"
10. android:layout_height="fill_parent" android:background="@color/solid_yellow">
11.
12. <TextView android:text="TextView" android:id="@+id/textView1"
13. android:layout_width="wrap_content" android:layout_height="fill_parent"
14. android:layout_weight="1">
15. </TextView>
16.
17. </LinearLayout>
18.</ScrollView>
虽然我的所有组件都设置了android:layout_height="fill_parent",但是结果依然不能扩展到全屏高度,为了看到组件实际大小,我设置了布局组件的背景色,显示效果如下:

很明显,scrollview(蓝色)已经扩展到最大高度了,但是其内部的linearlayout(黄色)却没有扩展.试了很多办法,就是没有办法让linearlaout组件扩大.
最终,在一个国外的网站上,找到了答案,描述如下:
Found the solution myself in the end. The problem was not with theLinearLayout, but with theScrollView (seems weird, considering the fact that theScrollViewwas expanding, while the LinearLayout wasn't).
The solution was to use android:fillViewport="true" on theScrollView.
原文链接:http://stackoverflow.com/questions/2599837/linearlayout-not-expanding-inside-a-scrollview
果然,需要设置scrollview的fillViewport属性为"true"才能使其子组件可以扩展!
效果:

向大虾们学习了!
遇到ScrollView下组件无法自动扩展到屏幕高度的问题,通过设置ScrollView的fillViewport属性为true成功解决。文章分享了解决过程及解决方案。
1万+

被折叠的 条评论
为什么被折叠?



