0

我有一个相对布局,其宽度/高度设置为 wrap_content。但是,右下角的按钮在其下侧被截断。更改 RelativeLayout 的 paddingBottom 无济于事,向按钮添加 marginBottom 也无济于事。

有任何想法吗?

这是我的代码:

<RelativeLayout
    android:id="@+id/sign_up_phase_enteraddress"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:paddingTop="10dp"
    android:paddingRight="10dp"
    android:paddingBottom="10dp"
    android:paddingLeft="10dp"
    android:background="#ff6aa639"
     >

    <TextView
        android:id="@+id/sign_up_signuphere"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginBottom="29dp"
        android:text="@string/sign_up_signuphere"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/sign_up_emaillabel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/sign_up_signuphere"
        android:layout_alignLeft="@id/sign_up_signuphere"
        android:layout_alignBaseline="@+id/sign_up_email"
        android:text="@string/sign_up_emailaddress"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/sign_up_email"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="46dp"
        android:layout_below="@id/sign_up_signuphere"
        android:layout_toRightOf="@id/sign_up_emaillabel"
        android:ems="10"
        android:inputType="textEmailAddress" >

        <requestFocus />

    </EditText>

    <Button
        android:id="@+id/sign_up_signup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/sign_up_haveaccount"
        android:layout_alignRight="@id/sign_up_email"
        android:layout_below="@id/sign_up_email"
        android:text="@string/sign_up_signup" />

    <TextView
        android:id="@+id/sign_up_haveaccount"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@id/sign_up_emaillabel"
        android:layout_marginTop="27dp"
        android:layout_below="@id/sign_up_email"
        android:text="@string/sign_up_haveaccount"
        android:textAppearance="?android:attr/textAppearanceSmall" />


</RelativeLayout>

...这就是它在模拟器中的样子: 按钮被截断

关于如何让按钮底部显示的任何想法?蒂亚!

4

2 回答 2

3

我的快速想法是使用 xml 代码将按钮底部边框设置为左侧文本的高度

android:layout_alignBottom="@+id/sign_up_haveaccount"

因为你已经设置layout_below了选项。但是,您的 xml 代码不太合适 :) 稍后我会尝试在这里为您编写更好的 xml 代码。


嗯,我发现了你的问题。我正在寻找解决方案。我为 textview 设置了新的填充底部,因为按钮与这个 textview 基线对齐。我知道这可能是一个不错的 hack,但我找不到很好的方法来处理它 :)

根据您的布局,我更改了 edittext 的行为以使其可拉伸。此外,我将所有元素分为 3 组。每行每一个,使其更具可读性。

也不要忘记关于 xmls 的前 2 行。

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/sign_up_phase_enteraddress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="#ff6aa639"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp" >

<!-- 1 row -->

<RelativeLayout
    android:id="@+id/row1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingBottom="29dp" >

    <TextView
        android:id="@+id/sign_up_signuphere"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/sign_up_signuphere"
        android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>

<!-- 2 row -->

<RelativeLayout
    android:id="@+id/row2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/row1" >

    <TextView
        android:id="@+id/sign_up_emaillabel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/sign_up_email"
        android:text="@string/sign_up_emailaddress"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/sign_up_email"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_marginLeft="20dp"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@+id/sign_up_emaillabel"
        android:inputType="textEmailAddress" >

        <requestFocus />
    </EditText>
</RelativeLayout>

<!-- 3 row -->

<RelativeLayout
    android:id="@+id/row3"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/row2" >

    <TextView
        android:id="@+id/sign_up_haveaccount"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="27dp"
        android:paddingBottom="15dp"
        android:text="@string/sign_up_haveaccount"
        android:textAppearance="?android:attr/textAppearanceSmall" />

    <Button
        android:id="@+id/sign_up_signup"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/sign_up_haveaccount"
        android:layout_alignParentRight="true"
        android:text="@string/sign_up_signup" />
</RelativeLayout>

</RelativeLayout>
于 2013-06-25T13:57:38.833 回答
0

这是因为您的填充而发生的,您在底部提供了 10 dp 的填充,并且您的按钮视图没有足够的空间。删除填充并检查它。

于 2013-06-25T14:04:34.533 回答