ConstraintLayout嵌套RecycleView显示不全、遮挡问题

243 阅读1分钟

ConstraintLayout里包含其他View和RecycleView

ConstraintLayout的高设置为自适应:layout_height="wrap_content"

要求:RecycleView的高度也要自适应

<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    
    <TextView
        android:id="@+id/tv1"
        style="@style/TVNormal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="@dimen/margin"
        android:layout_marginTop="@dimen/margin"
        android:text="@{viewModel.obsHospital}"
        android:textStyle="bold"
        bind:layout_constraintLeft_toLeftOf="parent"
        bind:layout_constraintTop_toTopOf="parent" />
        
    <TextView
        android:id="@+id/tv2"
        style="@style/TVNormal"
        android:layout_marginStart="@dimen/margin_5"
        android:text="@{viewModel.obsDepartment}"
        android:textStyle="bold"
        bind:layout_constraintBottom_toBottomOf="@id/tv1"
        bind:layout_constraintLeft_toRightOf="@id/tv1"
        bind:layout_constraintTop_toTopOf="@id/tv1" />
        
    <com.google.android.material.button.MaterialButton
        android:id="@+id/btn1"
        style="@style/BtnMaterialMainLeast"
        android:layout_width="wrap_content"
        android:layout_margin="@dimen/margin"
        android:text="按钮"
        bind:isVisible="@{!viewModel.hasRevisitTimes}"
        bind:layout_constraintRight_toRightOf="parent"
        bind:layout_constraintTop_toTopOf="parent"
        bind:onClickCommand="@{viewModel.onBuyRevisitTimesClick}" />
        
    <androidx.constraintlayout.widget.Barrier
        android:id="@+id/barrier_hos_dep_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        bind:barrierDirection="bottom"
        bind:constraint_referenced_ids="tv1,tv2,btn1" />
        
    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycle_view"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginTop="@dimen/margin"
        android:overScrollMode="never"
        bind:layout_constraintBottom_toBottomOf="parent"
        bind:layout_constraintHeight_default="wrap"
        bind:layout_constraintLeft_toLeftOf="parent"
        bind:layout_constraintRight_toRightOf="parent"
        bind:layout_constraintTop_toBottomOf="@id/barrier_hos_dep_btn" />
</androidx.constraintlayout.widget.ConstraintLayout>
  • android:layout_height="0dp"
  • bind:layout_constraintHeight_default="wrap"
  • bind:layout_constraintBottom_toBottomOf="parent"
  • bind:layout_constraintLeft_toLeftOf="parent"
  • bind:layout_constraintRight_toRightOf="parent"
  • bind:layout_constraintTop_toBottomOf="@id/barrier_hos_dep_btn"