如何定位这些观点?

时间:2016-12-02 20:11:48

标签: java android android-layout android-linearlayout

我想实现以下布局:
enter image description here

我这样做了:

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

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:orientation="vertical"
        android:layout_marginRight="20dp"
    >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="LABEL"
            android:textSize="14sp"
            android:layout_marginBottom="5dp"
        />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/white"
            android:padding="10dp"
            android:text="Text Box 1"
            android:textSize="14sp"
        />
    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
    >
        <LinearLayout android:layout_width="match_parent"
                      android:layout_height="match_parent"
                      android:orientation="vertical"
        >
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="LABEL 2"
                android:layout_marginBottom="5dp"
                android:textSize="14sp"
            />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="horizontal"
            >
                <TextView
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:text="BLA-1"
                    android:background="@color/white"
                    android:textSize="14sp"
                />

                <TextView android:layout_width="wrap_content"
                          android:layout_height="match_parent"
                          android:layout_marginLeft="10dp"
                          android:layout_marginRight="10dp"
                          android:gravity="center|bottom"
                          android:text="and"
                          android:textSize="14sp"
                />

                <TextView
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:text="BLA-2"
                    android:background="@color/white"
                    android:textSize="14sp"
                />


            </LinearLayout>

        </LinearLayout>

    </LinearLayout>

</LinearLayout>

基本上我使用的是LinearLayouts和重力 它有效但看起来有点复杂,我注意到当我增加and文本左右边距时,文本BLA-1BLA-2会被切断。
有更好的方法吗?
我想我不能使用相对布局,因为我无法让视图在屏幕上显示这些尺寸,对吧?

更新
同样在我的方法中,TextViews中的任何填充都会切断文本

2 个答案:

答案 0 :(得分:0)

我认为LinearLayout是一个很好的选择,即使你想要保持权重也很复杂。 您应该将所有TextView更改为wrap_content,以免被切断。 如果您仍想避开空格,可以使用TextViewLinearLayout将每个FrameLayout包裹起来:

<LinearLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:orientation="vertical">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="LABEL2" />
</LinearLayout>

答案 1 :(得分:0)

在这里,您可以使用Linear Layout获取它。请仔细查看以下xml 布局您正在寻找的内容。

<?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">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="5dp"
        android:orientation="horizontal"
        android:weightSum="3"
        tools:ignore="DisableBaselineAlignment">

        <LinearLayout
            android:id="@+id/llOne"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1.5"
            android:orientation="vertical">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="5dp"
                android:text="LABEL"
                android:textSize="14sp" />

            <EditText
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@color/white"
                android:hint="textbox1"
                android:padding="10dp"
                android:textSize="14sp" />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/llTwo"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.6"
            android:orientation="vertical">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="5dp"
                android:text="LABEL"
                android:textSize="14sp" />

            <EditText
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@color/white"
                android:hint="BLA1"
                android:padding="10dp"
                android:textSize="14sp" />

        </LinearLayout>

        <TextView
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center|bottom"
            android:layout_marginBottom="5dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_weight="0.3"
            android:text="and"
            android:textSize="14sp" />

        <LinearLayout
            android:id="@+id/llThree"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center|bottom"
            android:layout_weight="0.6"
            android:orientation="vertical">


            <EditText
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@color/white"
                android:hint="BLA2"
                android:padding="10dp"
                android:textSize="14sp" />

        </LinearLayout>

    </LinearLayout>

</RelativeLayout>

enter image description here