ConstraintLayout:在RecyclerView

时间:2017-11-16 14:32:36

标签: android android-layout android-recyclerview android-constraintlayout recyclerview-layout

我在ConstraintLayout中有一个水平的RecyclerView。我想在RecyclerView的末尾放置一个按钮。当回收器为空时,按钮应扩展到所有可用空间。将物品添加到回收商时,按钮应该减少到最低限度。

ConstraintLayout 1.1.0还有一些新增功能,例如layout_constraintWidth_min,但我不能让它工作。它应该以我想要的方式工作吗?

以下是相关属性,不包括身高:

<android.support.v7.widget.RecyclerView
    android:id="@+id/horizontal_recycler"
    android:layout_width="wrap_content"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toStartOf="@+id/add">
</android.support.v7.widget.RecyclerView>

<Button
   android:id="@+id/add"
   android:layout_width="0dp"
   app:layout_constraintWidth_min="80dp"
   app:layout_constraintStart_toEndOf="@+id/horizontal_recycler"
   app:layout_constraintEnd_toEndOf="parent">
</Button>

1 个答案:

答案 0 :(得分:2)

所以这是我的解决方案。

<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="wrap_content"
        android:layout_height="200dp"
        android:layout_marginEnd="80dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button"
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:text="ADD"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@+id/recyclerView"
        app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

请注意,为了防止recyclerView压扁按钮,回收器上的边缘应该等于按钮加上你认为合适的任何填充和边距。