如何设置具有顶部,中心和底部元素的布局?

时间:2011-10-26 17:39:05

标签: android layout relativelayout

我有2个LinearLayouts和一个相对布局中的按钮。 他们应该是这样的:

带顶栏的LinearLayout(约占屏幕的20%)


滚动视图中的大量元素占据了屏幕的大部分(约占屏幕的60%)


底部的按钮(约占屏幕的20%)

我试过这个:

<RelativeLayout
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">

   <LinearLayout
   android:id="@+id/layoutTopBlack"
   android:layout_alignParentTop="true"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content">
   <include layout="@layout/top_black_bar_cancel_register_button"/> 
</LinearLayout> 

    <LinearLayout
   android:id="@+id/layoutCenter"
   android:layout_below="@id/layoutTopBlack"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent">
   <include layout="@layout/top_black_bar_cancel_register_button"/> 
</LinearLayout> 

    <Button 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:id="@+id/buttonNextStep"
    android:text="@string/next_step"
    style="@style/mainButtonStyle"/>

</RelativeLayout>

这不起作用。 layoutCenter位于按钮上方,因此我从未看到按钮。

有什么建议吗?

提前致谢。

编辑: 我从编辑那里找到了这个: 无法解析资源@ id / layoutTopBlack

2 个答案:

答案 0 :(得分:0)

告诉你的layoutCenter在按钮上方布局,如下所示:

<LinearLayout
android:id="@+id/layoutCenter"
android:layout_above="@id/buttonNextStep"
android:layout_below="@id/layoutTopBlack"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<include layout="@layout/top_black_bar_cancel_register_button"/> 
</LinearLayout>

答案 1 :(得分:0)

实际上,考虑到您提到的百分比,您可能希望在LinearLayout使用layout weights,而不是使用RelativeLayout。

EG做你提到的20%/ 60%/ 20%的重量:

<LinearLayout 
  android:layout_width="match_parent" 
  android:layout_height="match_parent"
  android:orientation="vertical">
  <View android:layout_height="0px" android:layout_weight="1" ... />
  <View android:layout_height="0px" android:layout_weight="3" ... />
  <View android:layout_height="0px" android:layout_weight="1" ... />
</LinearLayout>

如果顶部/底部栏只需要保留其内容,而不是占用固定的百分比,则renam.antune的答案应该有效,或者您可以使用上面的LinearLayout但是设置顶部/底部栏包装内容而不对它们设置权重。然后,中心视图上的任何重量都会使其填充所有可用的剩余空间,而不会像使用fill_parent那样擦除按钮。