2016-03-16 74 views
2

我使用LinearLayout創建了一個表單。除了兩個按鈕,所有對象都顯示正常。 我想在自己的LinearLayout中對齊它們,但由於某種原因,其中一個總是低於另一個。Android - 無法在LinearLayout中對齊兩個按鈕

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context="il.ac.shenkar.david.todolistex2.InviteMember" 
    tools:showIn="@layout/activity_invite_member"> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="10dp" 
    android:orientation="vertical" 
    android:id="@+id/invitememberLayout1"> 
</LinearLayout> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:text="Invite Team Members" 
    android:id="@+id/invitememebrsView" 
    android:textSize="32sp" 
    android:layout_alignTop="@+id/invitememberLayout1" 
    android:layout_centerHorizontal="true" 
    android:textStyle="bold" /> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="25dp" 
    android:paddingLeft="25dp" 
    android:orientation="vertical" 
    android:id="@+id/invitememberLayout2"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Enter Team Member Email" 
     android:layout_marginTop="60dp" 
     android:paddingLeft="45dp" 
     android:id="@+id/memberemail" 
     android:layout_alignTop="@+id/createteamLayout2" 
     android:layout_centerHorizontal="true" 
     android:textStyle="bold" /> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:lines="8" 
     android:minLines="1" 
     android:layout_marginTop="20dp" 
     android:hint="    [email protected]" 
     android:inputType="textEmailAddress" 
     android:digits="0,1,2,3,4,5,6,7,8,9,qwertzuiopasdfghjklyxcvbnmABCDEFGHIJKLMNOPQRSTUVWXYZ,@,." 
     android:textSize="16sp" 
     android:id="@+id/editemailaddress" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Phone Number" 
     android:layout_marginTop="30dp" 
     android:paddingLeft="85dp" 
     android:id="@+id/memberphonetextView" 
     android:layout_alignTop="@+id/invitememberLayout2" 
     android:layout_centerHorizontal="true" 
     android:textStyle="bold" /> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:inputType="phone" 
     android:ems="10" 
     android:maxLength="10" 
     android:textSize="16sp" 
     android:hint="     Only digits allowed" 
     android:id="@+id/memberuserphonenumber" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Invite Member" 
     android:layout_marginTop="20dp" 
     android:layout_marginLeft="80dp" 
     android:layout_alignTop="@+id/createteamLayout2" 
     android:id="@+id/invitebtn" 
     android:onClick="onInviteMember" /> 

</LinearLayout> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="370dp" 
    android:orientation="vertical" 
    android:id="@+id/invitememberLayout4"> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Done" 
     android:id="@+id/Donebtn" 
     android:onClick="onDonebtn" 
     android:layout_gravity="right" /> 

    <Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Exit" 
    android:id="@+id/Exitbtn" 
    android:onClick="onExitbtn"/> 

</LinearLayout> 

這裏是UI As you can the 'Exit' button is not aligned with the 'Done' button

+1

集方向=水平 –

回答

2

這是bcz你已經定義了垂直方向。

將此代碼替換爲您的XML。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context="il.ac.shenkar.david.todolistex2.InviteMember" 
    tools:showIn="@layout/activity_invite_member"> 

    <LinearLayout 
     android:id="@+id/invitememberLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dp" 
     android:orientation="vertical"></LinearLayout> 

    <TextView 
     android:id="@+id/invitememebrsView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignTop="@+id/invitememberLayout1" 
     android:layout_centerHorizontal="true" 
     android:text="Invite Team Members" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:textSize="32sp" 
     android:textStyle="bold" /> 

    <LinearLayout 
     android:id="@+id/invitememberLayout2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="25dp" 
     android:orientation="vertical" 
     android:paddingLeft="25dp"> 

     <TextView 
      android:id="@+id/memberemail" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignTop="@+id/createteamLayout2" 
      android:layout_centerHorizontal="true" 
      android:layout_marginTop="60dp" 
      android:paddingLeft="45dp" 
      android:text="Enter Team Member Email" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textStyle="bold" /> 

     <EditText 
      android:id="@+id/editemailaddress" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="20dp" 
      android:digits="0,1,2,3,4,5,6,7,8,9,qwertzuiopasdfghjklyxcvbnmABCDEFGHIJKLMNOPQRSTUVWXYZ,@,." 
      android:hint="    [email protected]" 
      android:inputType="textEmailAddress" 
      android:lines="8" 
      android:minLines="1" 
      android:textSize="16sp" /> 

     <TextView 
      android:id="@+id/memberphonetextView" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignTop="@+id/invitememberLayout2" 
      android:layout_centerHorizontal="true" 
      android:layout_marginTop="30dp" 
      android:paddingLeft="85dp" 
      android:text="Phone Number" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textStyle="bold" /> 

     <EditText 
      android:id="@+id/memberuserphonenumber" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:ems="10" 
      android:hint="     Only digits allowed" 
      android:inputType="phone" 
      android:maxLength="10" 
      android:textSize="16sp" /> 

     <Button 
      android:id="@+id/invitebtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignTop="@+id/createteamLayout2" 
      android:layout_marginLeft="80dp" 
      android:layout_marginTop="20dp" 
      android:onClick="onInviteMember" 
      android:text="Invite Member" /> 

    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/invitememberLayout4" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="370dp" 
     android:gravity="center" 
     android:orientation="horizontal" 
     android:weightSum="2"> 

     <Button 
      android:id="@+id/Donebtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="right" 
      android:layout_weight="1" 
      android:onClick="onDonebtn" 
      android:text="Done" /> 

     <Button 
      android:id="@+id/Exitbtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:onClick="onExitbtn" 
      android:text="Exit" /> 

    </LinearLayout> 
</RelativeLayout> 

它完成。

+0

感謝您的及時回覆,它的偉大工程! –

+0

@DavidFaiz很高興幫助你:)。 –

+0

嘿, 我遇到了一個ImageView類似的問題,有沒有機會看看? –

0

因爲你給了它包含了按鈕的垂直定向LinearLayout,將其更改爲水平

android:orientation="horizontal" 
0

在你LinearLayout其中包含2個按鈕 -

更換 -

android:orientation="vertical" 

android:orientation="horizontal" 

因爲你希望你的按鈕水平佈置。

0

取向的LinearLayout意味着一個又一個

所以不使用垂直方向在最後的LinearLayout:你可以這樣做

<LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="370dp" 
     android:orientation="horizontal" 
     android:id="@+id/invitememberLayout4"> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Done" 
      android:id="@+id/Donebtn" 
      android:onClick="onDonebtn" 
      android:layout_gravity="right" /> 

     <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Exit" 
     android:id="@+id/Exitbtn" 
     android:onClick="onExitbtn"/> 

    </LinearLayout> 
0

或者其他方式與RelativeLayout這樣的改變LinearLayout的按鈕

<RelativeLayout 
     android:id="@+id/invitememberLayout4" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="370dp"> 

     <Button 
      android:id="@+id/Donebtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:onClick="onDonebtn" 
      android:layout_alignParentRight="true" 
      android:text="Done"/> 

     <Button 
      android:id="@+id/Exitbtn" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:onClick="onExitbtn" 
      android:layout_alignParentLeft="true" 
      android:text="Exit"/> 

    </RelativeLayout> 
0

在包含完成和退出的最後一個線性佈局中。設置 -

android:orientation="Horizontal" 

讓我知道它是否可以幫助你。

0

在last LinearLayout中添加android:orientation="horizontal"。如果你想將這兩個按鈕左右對齊,我建議你使用RelativeLayout而不是LinearLayout。

0

試試這個:

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="370dp" 
    android:orientation="horizontal" 
    android:id="@+id/invitememberLayout4" 
    android:weightSum="3"> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Invite Member" 
    android:layout_marginTop="20dp" 
    android:layout_marginLeft="80dp" 
    android:layout_alignTop="@+id/createteamLayout2" 
    android:id="@+id/invitebtn" 
    android:onClick="onInviteMember" 
    android:layout_weight="1" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Done" 
    android:id="@+id/Donebtn" 
    android:onClick="onDonebtn" 
    android:layout_gravity="right" 
    android:layout_weight="1" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Exit" 
    android:id="@+id/Exitbtn" 
    android:onClick="onExitbtn" 
    android:layout_weight="1"/> 

</LinearLayout>