今天在调整布局时遇到一个奇怪的问题,在scrollview下加入的组件无论如何也不能自动扩展到屏幕高度,最后对布局文件进行简化,最终得到最简layout配置内容如下:
- <?xml version="1.0" encoding="utf-8"?>
- <!-- 背景:蓝色 -->
- <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