2013-12-21 239 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>