【问题标题】:How to allow scrolling the last item of recyclerview above of the FAB?如何允许滚动FAB上方recyclerview的最后一项?
【发布时间】:2018-02-09 13:53:21
【问题描述】:

我有一个 RecyclerView,右下角顶部有一个 FAB。

滚动时,我希望允许用户进一步向上滚动,以使最后一项完全可见并且不被 FAB 覆盖。在底部允许额外的 48px 显示背景是可以的。

我尝试添加一个透明的页脚项目来解决问题。但是,在向列表添加排序后,透明页脚项目在排序期间会产生一些 UI 故障(分隔线显示在正常项目下方)。

我尝试添加边距,但空间一直被浪费。当用户查看顶部的第一个项目时,FAB 覆盖最后一个项目是可以的。只有当最后一个项目比该项目重要时才不能被覆盖。

这是布局xml:

<android.support.design.widget.CoordinatorLayout
    android:id="@+id/coordinator_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
  <android.support.v7.widget.RecyclerView
     android:id="@+id/recycler_view"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_gravity="center"
     android:clipToPadding="false"
     android:scrollbars="vertical"/>
 <android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    style="@style/floating_action_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="@dimen/fab_margin"
    android:src="@drawable/ic_add_white_24dp"
    app:layout_anchorGravity="bottom|center"/>
</android.support.design.widget.CoordinatorLayout>

更新 在这里使用物品装饰是正确的答案。

【问题讨论】:

  • 你能给你看代码吗?
  • 没有代码。是否有一个 API 告诉滚动它可以允许超过直到最后一项的底部?
  • 如何为最后一个回收站视图项目膨胀一个高度等于底部空间的空视图

标签: android android-recyclerview


【解决方案1】:

如果内容向下滚动,我认为更好的解决方案应该计算滚动范围并隐藏工厂。

    recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener(){
    @Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy){
        if (dy > 0) {
            fab.hide();
            return;
        }
        if (dy < 0) {
            fab.show();
        }
    }
});

但如果你真的想在底部添加边距,你应该使用ItemDecoratorion

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-08
  • 1970-01-01
相关资源
最近更新 更多