将recyclerview的滚动条放在父布局android的末尾

时间:2019-08-30 14:10:18

标签: android android-recyclerview

我的布局如下。目前,滚动条位于箭头的布局上方,但我需要将滚动条置于布局的底部,即箭头的布局下方。我尝试在scrollbarStyle中使用Recyclerview,但没有成功。关于如何克服这个问题有什么建议吗?

enter image description here

我的布局:

<androidx.constraintlayout.widget.ConstraintLayout
          android:id="@+id/itemLayout"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:gravity="center"
          android:minHeight="@dimen/size_94dp"
          android:visibility="gone"
          android:clickable="true"
          bind:layout_constraintEnd_toEndOf="@+id/listLayout"
          bind:layout_constraintStart_toStartOf="parent"
          android:background="@color/white"
          bind:layout_constraintTop_toBottomOf="@+id/listLayout"
          >

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recyclerView"
            android:layout_width="match_parent"
            android:layout_height="@dimen/size_0dp"
            android:orientation="horizontal"
            android:scrollbars="horizontal"
            android:scrollbarStyle="outsideInset"
            android:fadeScrollbars="false"
            bind:layout_constraintStart_toStartOf="parent"
            bind:layout_constraintTop_toTopOf="parent"
            bind:layout_constraintEnd_toEndOf="parent"
            bind:layout_constraintBottom_toTopOf="@+id/arrow_layout"
            android:scrollbarThumbHorizontal="@drawable/custom_scrollbar"
            bind:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
            />

        <FrameLayout
            android:id="@+id/arrow_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            bind:layout_constraintBottom_toBottomOf="parent"
            bind:layout_constraintStart_toStartOf="parent"
            bind:layout_constraintEnd_toEndOf="parent"
            >
          <ImageView
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
            android:src="@drawable/ic_chevron_left_black_24dp"
              android:adjustViewBounds="true"/>
          <ImageView
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:src="@drawable/ic_chevron_right_black_24dp"
              android:layout_gravity="end"/>
        </FrameLayout>


      </androidx.constraintlayout.widget.ConstraintLayout>

1 个答案:

答案 0 :(得分:2)

您已经有一个Constraint布局,该布局已被设计用来轻松地重叠项目。在这种情况下,最简单的解决方法是在RV的底部添加填充,然后将箭头约束为与填充区域重叠

与上面的一些评论相反,该方法没有什么问题-自定义视图(或自定义布局管理器)在您不添加新的预定义行为时会显得过大,并且会花费更多工作。如果您仍然想采用这种方法,则需要一个搜索栏和一个回收站来一起工作,这对我来说听起来像是引入错误的简便方法

编辑:它应该简单到将android:paddingBottom="25dp"添加到RecyclerView项目布局(传递给ViewHolder的布局)的 root 视图中,然后然后将您的FrameLayout更改为:

<FrameLayout
        android:id="@+id/arrow_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        bind:layout_constraintBottom_toBottomOf="@id/recyclerView"
        bind:layout_constraintStart_toStartOf="@id/recyclerView"
        bind:layout_constraintEnd_toEndOf="@id/recyclerView"
        android:marginBottom="16dp">

正如Barotia所述,您始终可以将25dp和16dp更改为所需的任何值,包括百分比

相关问题