RelativeLayout对齐Textview和Edittext

时间:2015-12-11 14:30:40

标签: android xml android-layout xamarin xamarin-studio

我想使用RelativeLayout水平对齐textview,然后使用edittext,然后再使用textview,然后再使用edittext。我知道你可以用LinearLayout做到这一点,但我想用relativeLayout来实现它。 我的代码如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/userNameLbl"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Username:"
        android:layout_alignParentLeft="true" />
    <EditText
        android:id="@+id/userNameText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/userNameLbl"
        android:minWidth="200dp"
        android:text="Sample Text" />
    <TextView
        android:id="@+id/pwdLbl"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Password:"
        android:layout_toRightOf="@+id/userNameText"
        android:layout_toEndOf="@+id/userNameText" />
    <EditText
        android:id="@+id/userNameText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/pwdLbl"
        android:minWidth="200dp"
        android:text="Sample Text" />
 </RelativeLayout>

但它不起作用。所有控件( edittexts textviews )相互叠加!我的代码出了什么问题?我使用layout_toRightOf将它们放在一起。 因为它被提到,所以有足够的控制地点。 这也是设计师的照片,它看起来如何: enter image description here

4 个答案:

答案 0 :(得分:2)

我复制你的代码只是为了看到确切的问题,但一切看起来都很好。然而,由于空间问题,最后一个EditText在右侧狭窄。 你确定你有足够的空间让一切都适合吗?

由于空间太小,视图可能会互相塞满。

答案 1 :(得分:0)

尝试使用此代码,它将根据需要对齐:

  <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:orientation="horizontal"
    android:layout_height="match_parent">

        <TextView
            android:id="@+id/userNameLbl"
            android:layout_width="0dp"
            android:layout_weight="0.25"
            android:layout_height="wrap_content"
            android:text="Username:" />
        <EditText
            android:id="@+id/userNameText"
            android:layout_width="0dp"
            android:layout_weight="0.25"
            android:layout_height="wrap_content"

            android:minWidth="200dp"
            android:text="Sample Text" />




        <TextView
            android:id="@+id/pwdLbl"
            android:layout_width="0dp"
            android:layout_weight="0.25"
            android:layout_height="wrap_content"
            android:text="Password:"

            />
        <EditText
            android:id="@+id/userNameText2"
            android:layout_width="0dp"
            android:layout_weight="0.25"
            android:layout_height="wrap_content"


            android:minWidth="200dp"
            android:text="Sample Text" />


</LinearLayout>

如果您需要任何进一步的信息,请在下方评论

答案 2 :(得分:0)

当您仔细观察时,在android:layout_toRightOfandroid:layout_toEndOf属性中,您使用的是@+id/...个值。删除+以引用现有资源项。

答案 3 :(得分:0)

好的,问题似乎是在Xamarin Studio本身,它没有正确呈现布局的内容。因为当我在设备上运行这种布局时,控制器彼此相邻并且没有这样的问题,但是设计师表明它完全不同。