在约束布局中使用线性/相对布局是否不好?

时间:2019-02-03 22:07:50

标签: java android android-layout

我读了一些关于布局嵌套的文章,有些人说这是一种不好的做法,但是我有一个xml布局,它使我可以更轻松地将视图与线性布局进行分组,然后彼此进行约束。

<android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:id="@+id/linearMarkStart"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toStartOf="@id/linearEndMark">

            <TextView
                android:id="@+id/mark_start"
                android:text="@string/start_label"
                android:textColor="#ffffffff"
                android:textSize="14sp"
                android:textStyle="bold"
                android:labelFor="@+id/starttext"
                android:clickable="true"
                android:focusable="true"
                android:gravity="center"
                android:layout_width="wrap_content"
                android:layout_height="31dip"/>

            <EditText
                android:id="@+id/starttext"
                android:textSize="16sp"
                android:textColor="@color/white"
                android:inputType="number|numberDecimal"
                android:layout_marginStart="10dip"
                android:layout_marginEnd="30dip"
                android:layout_width="70dip"
                android:layout_height="wrap_content"
                android:gravity="center" />
        </LinearLayout>

        <LinearLayout
            android:id="@+id/linearEndMark"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toEndOf="@id/linearMarkStart">

            <TextView
                android:id="@+id/mark_end"
                android:text="@string/end_label"
                android:textColor="#ffffffff"
                android:textSize="14sp"
                android:textStyle="bold"
                android:labelFor="@+id/endtext"
                android:clickable="true"
                android:focusable="true"
                android:gravity="center"
                android:layout_width="wrap_content"
                android:layout_height="31dip" />

            <EditText
                android:id="@+id/endtext"
                android:textSize="16sp"
                android:textColor="@color/white"
                android:inputType="number|numberDecimal"
                android:layout_width="70dip"
                android:layout_height="wrap_content"
                android:layout_marginStart="10dip"
                />

        </LinearLayout>
</ConstraintLayout>

我现在通过使用2个linearlayouts作为constraintlayout中的子布局来输出什么,而我又不用那些2个linearlayouts如何实现相同的效果,因为布局嵌套不好,看来呢? enter image description here

1 个答案:

答案 0 :(得分:1)

为提高性能,嵌套组件/容器更好,但是在某些复杂的布局中,它们可以使代码易于理解,并有助于将代码部分封装在单独的可重用文件中。