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"才能使其子组件可以扩展!

效果:

 

 

向大虾们学习了!

猜你喜欢

转载自2528.iteye.com/blog/2020860