线性布局似乎不直

时间:2015-09-21 14:41:27

标签: android android-layout

我有一个线性布局,但无论如何,登录按钮不会恰好位于文本字段的正下方。按钮总是超出元素。

 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/ScrollView01"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:context="${relativePackage}.${activityClass}"
     >



      <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"

        android:contentDescription="@string/AppLogDescription"
        android:src="@drawable/applogo" />

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:orientation="vertical"
        android:layout_below="@+id/imageView1"
        android:layout_alignParentBottom="true">

        <EditText
            android:id="@+id/editText_email"
            android:layout_width="272dp"
            android:layout_height="wrap_content"
            android:inputType="textEmailAddress"
            android:drawableLeft="@drawable/mail_icon"
            android:drawableStart="@drawable/mail_icon"
            android:drawablePadding="10dp"
            android:padding="10dp"
            android:background="@drawable/edit_text_border"
             />

        <EditText
            android:id="@+id/editText_Password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textPassword"
            android:drawableLeft="@drawable/password_icon"
            android:drawableStart="@drawable/password_icon"
             android:background="@drawable/edit_text_border"
              android:gravity="center"
              android:drawablePadding="5dp"
               android:padding="10dp"
             android:layout_marginTop="5dp" />




        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <EditText
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:inputType="textPersonName"
                android:text="Name"
                android:ems="10"
                android:id="@+id/editText"
                android:layout_weight="1" />

            <Button
                android:id="@+id/LogInButton"
                android:layout_width="284dp"
                android:layout_height="wrap_content"
                android:text="@string/LogIn"
                android:onClick="LogInClickEvent" />

        </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:weightSum="1">




                <Switch
                    android:id="@+id/cb_login"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:layout_margin="1dp"
                    android:onClick="RememberMe_click"
                    android:gravity="center_vertical"
                    android:switchMinWidth="56dp"
                    android:textOff=""
                    android:textOn=""
                android:layout_marginTop="10dp"
                    android:checked="false" />
                       <TextView
                           android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:text="Remember me"
                           android:layout_marginTop="10dp"
                           android:textAppearance="?android:attr/textAppearanceSmall"
                           android:layout_marginLeft="10dp"
                           android:layout_marginStart="10dp"
                           android:layout_weight="0.70" />

                <Button
                    android:id="@+id/TV_LogIn"
                    android:background="@android:color/transparent"
                    android:layout_width="wrap_content"
                    android:layout_height="23dp"
                    android:text="Forget Password?"
                    android:textSize="10dp"
                    android:layout_marginTop="10dp"
                    android:onClick="ForgetPasswordEvent"
                    android:textAppearance="?android:attr/textAppearanceSmall" />


            </LinearLayout>


    </LinearLayout>

</RelativeLayout >
</ScrollView>

我的文字字段看起来很直,但是按钮(登录按钮并记住我切换)似乎偏离了网格,而右边则是字段

2 个答案:

答案 0 :(得分:0)

删除你的android:padding =&#34; 10dp&#34;来自你的第二个edittext 和android:layout_marginTop =&#34; 10dp来自你的按钮。

并确保您的线性布局方向是垂直的。

修改: 你应该使用layout_gravity =&#34; center&#34;而不是android:layout_centerHorizo​​ntal =&#34; true&#34;和android:layout_alignParentBottom =&#34; true&#34;这是为RelativeLayout 或者将linearLayout放在RelativeLayout中,这应该是你的根布局。

答案 1 :(得分:0)

试试这个:

  <LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:orientation="vertical"
    android:layout_below="@+id/imageView1"
    android:layout_alignParentBottom="true">

    <EditText
        android:id="@+id/editText_email"
        android:layout_width="255dp"
        android:layout_height="wrap_content"
        android:inputType="textEmailAddress"
        android:drawableLeft="@drawable/mail_icon"
        android:drawableStart="@drawable/mail_icon"
        android:drawablePadding="10dp"
        android:padding="10dp"
        android:gravity="center"
        android:background="@drawable/edit_text_border"
         />

    <EditText
        android:id="@+id/editText_Password"
        android:layout_width="255dp"
        android:layout_height="wrap_content"
        android:ems="10"
        android:inputType="textPassword"
        android:drawableLeft="@drawable/password_icon"
        android:drawableStart="@drawable/password_icon"
        android:background="@drawable/edit_text_border"
        android:gravity="center"
        android:drawablePadding="5dp"
        android:padding="10dp"
        android:layout_marginTop="5dp" />

    <Button
        android:id="@+id/LogInButton"
        android:layout_width="261dp"
        android:layout_height="wrap_content"
        android:text="@string/LogIn"
        android:gravity="center"
        android:onClick="LogInClickEvent"
        android:layout_marginTop="10dp"
        />

如果您想将所有内容放在底部,这将无效:

  android:layout_alignParentBottom="true"

因为它适用于 RelativeLayout 而不适用​​于LinearLayout。