我想将Button与EditText对齐。 更确切地说,我想将带有 id = signinButton的按钮与edittext对齐 id = passwordEditText。 editText有填充 =“8dp”。我想按钮是根据填充对齐的。 布局文件如下:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/nitos_background_color"
tools:context="${packageName}.${activityClass}" >
<EditText
android:id="@+id/usernameEditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginBottom="30dp"
android:layout_marginTop="40dp"
android:padding="8dp"
android:ems="10"
android:inputType="text"
android:hint="@string/username"
android:background="#ffffff">
<requestFocus />
</EditText>
<EditText
android:id="@+id/passwordEditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/usernameEditText"
android:layout_marginRight="15dp"
android:layout_marginBottom="28dp"
android:padding="8dp"
android:layout_alignLeft="@+id/usernameEditText"
android:ems="10"
android:inputType="textPassword"
android:hint="@string/password"
android:background="@color/white_background"/>
<Button
android:id="@+id/signinButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/passwordEditText"
android:layout_alignLeft="@+id/passwordEditText"
android:layout_alignRight="@+id/passwordEditText"
android:layout_marginBottom="20dp"
android:text="@string/signin" />
<CheckBox
android:id="@+id/keep_me_signed_in_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/signinButton"
android:layout_alignLeft="@+id/signinButton"
android:text="@string/keep_me_signed_in"
style="@style/CustomFontStyleText"
android:textSize="@dimen/checkbox_text_size"/>
</RelativeLayout>
最终屏幕为:
如您所见,该按钮与上述EditText不完全对齐。
答案 0 :(得分:0)
试试这个..
该默认 Android Button
背景,这就是为什么它显示为可以设置自定义背景的方式,如{{1转到EditText
Button
将正确显示。
答案 1 :(得分:0)
我认为这是因为默认按钮背景样式有内部填充(透明区域)。这些视图的帧正确对齐,但在视觉上存在差异。要解决此问题,您可以将按钮的layout_marginLeft
和layout_marginRight
属性设置为略微负值,例如-5dp
并进行比较。或者指定一个没有透明区域的自定义按钮背景。
答案 2 :(得分:0)
我使用linearLayout解决了问题,如评论中提到的pratik。 解决方案:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/nitos_background_color" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="15dp" >
<EditText
android:id="@+id/usernameEditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:layout_marginBottom="30dp"
android:padding="8dp"
android:ems="10"
android:inputType="text"
android:hint="@string/username"
android:background="#ffffff">
</EditText>
<EditText
android:id="@+id/passwordEditText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="30dp"
android:padding="8dp"
android:ems="10"
android:inputType="textPassword"
android:hint="@string/password"
android:background="@color/white_background"/>
<Button
android:id="@+id/signinButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:background="@color/light_blue_color"
android:text="@string/signin" />
<CheckBox
android:id="@+id/keep_me_signed_in_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/keep_me_signed_in"
style="@style/CustomFontStyleText"
android:textSize="@dimen/checkbox_text_size"/>
<ImageView
android:id="@+id/nitlabImageView"
android:layout_width="230dp"
android:layout_height="200dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="30dp"
android:contentDescription="@string/nitlab_image"
android:src="@drawable/nitlab_letters" />
</LinearLayout>
</ScrollView>
最终屏幕是: