今天在调整布局时遇到一个奇怪的问题,在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 theScrollView
was 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"才能使其子组件可以扩展!
效果:
向大虾们学习了!