您的位置:首页 > 移动开发 > Android开发

android中关于scrollview内部组件android:layout_height="fill_parent"无效的解决办法

2011-08-31 11:59 597 查看
/article/10405789.html

今天在调整布局时遇到一个奇怪的问题,在scrollview下加入的组件无论如何也不能自动扩展到屏幕高度,最后对布局文件进行简化,最终得到最简layout配置内容如下:

·········10········20········30········40········50········60········70········80········90········100·······110·······120·······130·······140·······150

<?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>

<?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

果然,需要设置scrollview的fillViewport属性为"true"才能使其子组件可以扩展!

效果:



向大虾们学习了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐