如何使布局填充空间,直到底部的另一个布局

时间:2013-12-29 17:12:50

标签: android android-layout layout

Ilutration:

“----”表示布局区域

“....”表示另一个布局区域

<-------------------->
<----<TextView_1>---->
<-------------------->
<-<..<TextView_a...>-> 
<-<...          ...>->
<-<...          ...>->
<-<...         >...>->
<-<................>->
<-<................>->
<-<................>->
<-<..*layout_end*..>->
<-------------------->
<----<TextView_2----->
<-----         >----->
<-------------------->

“....”布局的内容只是 TextView_a ,在 * layout_end *

如果我在“....”布局中添加 match_parent ,则不会显示 TextView_2 。像这样:

<-------------------->
<----<TextView_1>---->
<-------------------->
<-<..<TextView_a...>-> 
<-<...          ...>->
<-<...          ...>->
<-<...        />...>->
<-<................>->
<-<................>->
<-<................>->
<-<................>->
<-<................>->
<-<................>->
<-<................>->
<-<..*layout_end*..>->

我需要“....”布局填充空间,但只为 TextView_2 留出空间。 我能做些什么才能获得高效率?结果:

<-------------------->
<----<TextView_1>---->
<-------------------->
<-<..<TextView_a...>-> 
<-<...          ...>->
<-<...          ...>->
<-<...         >...>->
<-<................>->
<-<................>->
<-<................>->
<-<..*layout_end*..>->
<-------------------->
<----<TextView_2----->
<-----         >----->
<-------------------->

右:http://s30.postimg.org/f63iski0h/correto.png 错了:http://s11.postimg.org/jdq8al71f/incorreto.png

4 个答案:

答案 0 :(得分:7)

创建一个像这样的垂直线性布局:

<LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="mtch_parent"> 

     <LinearLayout 
         android:layout_width="match_parent" 
         android:layout_height="48dip"/>        

     <LinearLayout 
         android:layout_width="match_parent" 
         android:layout_height="0dip" android:layout_weight="1">

         <!-- put your TextView here -->
     </LinearLayout>


     <LinearLayout 
         android:layout_width="match_parent" 
         android:layout_height="48dip"/> 
</LinearLayout>

答案 1 :(得分:0)

用你想要的任何东西替换按钮。甚至是布局。

<Button
    android:id="@+id/topbutton"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_alignParentTop="true" >

</Button>

<Button
    android:id="@+id/bottombutton"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:layout_alignParentBottom="true" >

</Button>

<Button
    android:id="@+id/middlebutton"
    android:layout_width="40dp"
    android:layout_height="wrap_content"
    android:layout_above="@id/bottombutton"
    android:layout_below="@id/topbutton" >

</Button>

答案 2 :(得分:0)

尝试放置另一个布局,然后将TextView2放在该布局中。然后,当您将match_parent属性应用于布局1的高度时,它将适合布局2。

答案 3 :(得分:0)

我会想出一个活动,其中第一个TextView是标题,第二个包含正文,第三个是页脚。在这种情况下,wrap_content和match_parent是你的朋友。

<LinearLayout 
 android:orientation="vertical" 
 android:layout_width="match_parent" 
 android:layout_height="match_parent">
<TextView
    android:id="@+id/top"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:padding_top="15dp"
    android:padding_bottom="15dp">
<TextView
    android:id="@+id/middle"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:padding_top="5dp"
    android:padding_bottom="5dp">
<TextView
    android:id="@+id/bottom"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:padding_top="15dp"
    android:padding_bottom="15dp">
</LinearLayout>

顶部和底部的高度通过填充调整,而中间的高度填充其余空间。