<constraintlayout>中<textview>下面的边距不起作用

时间:2017-11-14 14:13:40

标签: android xml android-recyclerview android-constraintlayout

TextView内有RecyclerViewConstraintLayout的简单布局。

    <android.support.constraint.ConstraintLayout
        android:id="@+id/clSelectedPatient"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/tvSelectPatient"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Lifcare"
            android:textSize="18sp"
            android:textStyle="bold"
            android:layout_marginBottom="100dp"
            app:layout_constraintBottom_toTopOf="@+id/rvPatients"
            app:layout_constraintTop_toTopOf="parent" />

        <android.support.v7.widget.RecyclerView
            android:id="@+id/rvPatients"
            android:layout_width="match_parent"
            android:layout_height="100dp"
            app:layout_constraintTop_toBottomOf="@+id/tvSelectPatient"/>

    </android.support.constraint.ConstraintLayout>
<{1}}以下android:layout_marginBottom="100dp"无效。

2 个答案:

答案 0 :(得分:1)

您的布局有一些错误:

  • 您使用match_parent作为宽度,并且对ConstraintLayout子视图禁止使用match_parent。

Build a Responsive UI with ConstraintLayout - Adjust the view size

  

注意:您不能对ConstraintLayout中的任何视图使用match_parent。   而是使用&#34;匹配约束&#34; (0dp)

  • 为了正确显示垂直边距,您必须为TextView和RecyclerView定义垂直约束。

您的固定布局代码如下所示:

<android.support.constraint.ConstraintLayout
    android:id="@+id/clSelectedPatient"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/tvSelectPatient"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginBottom="100dp"
        android:text="Lifcare"
        android:textSize="18sp"
        android:textStyle="bold"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintBottom_toTopOf="@+id/rvPatients" />

    <android.support.v7.widget.RecyclerView
        android:id="@+id/rvPatients"
        android:layout_width="0dp"
        android:layout_height="100dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/tvSelectPatient"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintBottom_toBottomOf="parent" />

</android.support.constraint.ConstraintLayout>

这就是它在设备上的外观:

enter image description here

答案 1 :(得分:0)

添加

app:layout_constraintBottom_toBottomOf="parent"

到您的RecyclerView