Recyclerview 滚动经过 FAB

Recyclerview scrolling past FAB

我正在使用 recyclerview 并且在我的布局上有一个 FAB。 我希望能够像 Gmail 应用程序那样在最后一个项目的底部给出一点 space,当您滚动到底部时,底部项目右侧的星号仍然可以点击。

我尝试在底部添加一些填充以实现此目的,但滚动条不会一直滚动到底部,停在填充高度处,而 Gmail 版本会。有谁知道如何做到这一点?

<RecyclerView
    android:id="@+id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clipToPadding="false"
    android:paddingBottom="90dp"
    android:scrollbars="vertical" />

使用它

  android:layout_marginBottom = "80dp"

您必须在适配器的末尾添加 "footer"。此页脚将只是一个空白视图,如 android.widget.Space.

recycler 视图没有任何页眉和页脚的本机选项,但您可以 google 周围找到一些选项。

我开发了一个库,其中包含 header/footer/section 选项的回收站视图:

我还没有上传到 Maven,但你可以在这里获取代码:https://github.com/eyeem/RecyclerViewTools

那么使用就是:

WrapAdapter wrapAdapter = new WrapAdapter(adapter);
wrapAdapter.addFooter(inflater.inflate(R.layout.footer, recycler,   false));
recycler.setAdapter(wrapAdapter);

添加页脚的最简单方法是设置一个带有 usesFooter() 标志的自定义适配器,如果为真,则将行数加 1(如果不需要,则始终加一)由其他任何东西添加)。然后在 onCreateViewHolder() 中检查该位置是否是列表中的最后一个,并使用您要添加的填充高度(比如 80dp)膨胀一个空视图

如果在 onBindViewHolder() 中的这个位置,您还应该添加一个 return,因为它是一个空视图,不需要更新其数据。