android中关于scrollview内部组件android:layout_height="fill_parent"无效的解决办法
今天在调整布局时遇到一个奇怪的问题,在scrollview下加入的组件无论如何也不能自动扩展到屏幕高度,最后对布局文件进行简化,最终得到最简layout配置内容如下:
<!-- 背景:蓝色 --> <ScrollView android:layout_width="fill_parent" android:id="@+id/scrollView1" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="fill_parent" android:background="@color/solid_blue"> <!-- 背景:黄色 --> <LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/solid_yellow"> <TextView android:text="TextView" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_weight="1"> </TextView> </LinearLayout> </ScrollView>
虽然我的所有组件都设置了android:layout_height="fill_parent",但是结果依然不能扩展到全屏高度,为了看到组件实际大小,我设置了布局组件的背景色,显示效果如下:
很明显,scrollview(蓝色)已经扩展到最大高度了,但是其内部的linearlayout(黄色)却没有扩展.
试了很多办法,就是没有办法让linearlaout组件扩大.
最终,在一个国外的网站上,找到了答案,描述如下:
......
Found the solution myself in the end. The problem was not with the LinearLayout
, but with the ScrollView
(seems weird, considering the fact that the ScrollView
was expanding, while the LinearLayout
wasn't).
The solution was to use android:fillViewport="true"
on the ScrollView
.
原文链接:
http://stackoverflow.com/questions/2599837/linearlayout-not-expanding-inside-a-scrollview
果然,需要设置scrollview的fillViewport属性为"true"才能使其子组件可以扩展!
效果:
向大虾们学习了!