2013-12-21 185 views
0

我看了很多答案,没有找到一个不是解决方法。所以,请原谅,如果这已被问及答案。对齐按钮到屏幕底部

我有一个RelativeLayout,我想要出现在屏幕的底部,而不管RelativeLayout之外的东西的大小和其上方。可以按照设计工作(Relative以下Relative)?如果是这样,请告诉我我做错了什么。

注:我已删除大部分,使其显而易见的,为什么第一RelativeLayout必须是一个RelativeLayout和第二RelativeLayout通常是<include...,我在其他地方使用,并把在明确这个例子的胆量。

谢谢。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" > 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <EditText 
     android:id="@+id/enter_Game_Name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="fill_horizontal" 
     android:hint="Enter Game Name" 
     android:inputType="text" /> 
</RelativeLayout> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="48dp" 
    android:layout_alignParentBottom="true" > 

    <Button 
     android:id="@+id/d_cancel" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:text="@android:string/cancel" /> 
</RelativeLayout> 

这里就是我得到...

enter image description here

回答

1

在你的第二个RelativeLayout的你有android:layout_alignParentBottom="true",此属性将无法工作,因为父母是的LinearLayout如果此属性不起作用并且没有任何作用,则使您的父布局为RelativeLayout而不是LinearLayout和删除Orientation属性,因为它不起作用,那么无论您的屏幕大小和布局如何,您都将获得按钮。按钮

+0

它的工作。谢谢。你能解释为什么'layout_align_ParentBottom'不适合'LinearLayout'吗? – ddk

+0

线性布局的工作方式就好像它将孩子放在方向属性中指定的块(水平或垂直)。您将方向指定为垂直方向,并且按钮是最后一个元素,因此它将始终放置在最后一个元素与线性布局结束之后。 –

0

您的父级布局是线性布局。使其成为相对布局。然后将两个视图(编辑文本和按钮)放在其中,并设置一个顶部和一个对齐底部。

您的代码看起来像这样的事情(未测试)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 


<EditText 
     android:id="@+id/enter_Game_Name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="fill_horizontal" 
     android:hint="Enter Game Name" 
android:layout_alignParentTop="true" 

     android:inputType="text" /> 

<Button 
     android:id="@+id/d_cancel" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:text="@android:string/cancel" /> 
</RelativeLayout>