UI设计问题

时间:2018-09-28 14:59:21

标签: android user-interface

我是Android新手。我正在为注册表单创建布局。我正在使用基本容器作为相对布局。在相对布局内部,我保留班轮布局容器,然后在注册表的所有组件内部。

但是在将两个编辑文本字段下垂后,我可以看到两个编辑文本字段彼此重叠,并且作为一个可见,并且也朝着线性容器的中心移动。希望如此理解。好吧,我需要一个接一个的水平组件。帮助吗?

 <?xml version="1.0" encoding="utf-8"?>
<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/colorAccent"
    >


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="30dp"
            android:background="@drawable/l_border"
            android:padding="30dp"
            >

            <EditText
                android:id="@+id/txtMobile"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:background="@drawable/ll_border"
                android:backgroundTint="@color/colorAccent"
                android:hint="Enter Name"
                android:padding="10dp"
                android:textColorHint="@color/colorBlack" />

            <EditText
                android:id="@+id/txtName"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:background="@drawable/ll_border"
                android:backgroundTint="@color/colorAccent"
                android:hint="Enter Mobile"
                android:padding="10dp"
                android:textColorHint="@color/colorBlack" />

        </LinearLayout>

</RelativeLayout>

[The layout look like this in editor]

1 个答案:

答案 0 :(得分:1)

首先,除非您想在内部LinearLayout上添加内容,否则将其嵌套在RelativeLayout内毫无意义。

第二,内部LinearLayout未设置方向,因此默认情况下设置为horizontal,这意味着第一个编辑文本(layout_width =“ match_parent”)将第二个EditText推出屏幕

如果将内部LinearLayot的方向设置为“垂直”,则将能够看到两个字段。

如果要将两个编辑文本都水平放置,请在两个文本字段上都设置"layout_width"="0; "weight"="1。或者,您可以使用RelativeLayout定位。

更新-@petey建议

这是实现您想要的方式:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"  // this view is kind of pointless
android:background="@color/colorAccent"> 
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="30dp"
    android:background="@drawable/l_border"
    android:padding="30dp">

    <EditText
        android:id="@+id/txtMobile"
        android:layout_width="0dp" // NOTICE THIS
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_weight="1" // // NOTICE THIS
        android:background="@drawable/ll_border"
        android:backgroundTint="@color/colorAccent"
        android:hint="Enter Name"
        android:padding="10dp"
        android:textColorHint="@color/colorBlack" />

    <EditText
        android:id="@+id/txtName"
        android:layout_width="0dp" // NOTICE THIS
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_weight="1" // NOTICE THIS
        android:background="@drawable/ll_border"
        android:backgroundTint="@color/colorAccent"
        android:hint="Enter Mobile"
        android:padding="10dp"
        android:textColorHint="@color/colorBlack" />

</LinearLayout>