我有一个线性布局,但无论如何,登录按钮不会恰好位于文本字段的正下方。按钮总是超出元素。
<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>
我的文字字段看起来很直,但是按钮(登录按钮并记住我切换)似乎偏离了网格,而右边则是字段
答案 0 :(得分:0)
删除你的android:padding =&#34; 10dp&#34;来自你的第二个edittext 和android:layout_marginTop =&#34; 10dp来自你的按钮。
并确保您的线性布局方向是垂直的。
修改强>: 你应该使用layout_gravity =&#34; center&#34;而不是android:layout_centerHorizontal =&#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。