如果不需要滚动,是否可以将RecyclerView中的最后一项停靠在底部?

Sta*_*wed 8 android android-recyclerview

我正在构建一个购物车RecyclerView,它在RecyclerView中显示购物车中的所有商品,并在底部有一个额外的视图,用于汇总购物车(如果适用,总额,优惠券折扣等).

如果购物车中有> 3个商品,它看起来很好,因为用户必须滚动到底部才能查看"摘要视图".但是,如果有1个或2个项目,则显示第一个项目,而不是摘要视图,然后是空格.我宁愿第一个项目,然后是空白,然后是摘要视图.

我尝试添加空项,但是,根据设备的分辨率,它看起来不一致.

当前外观如果少于3个项目(即如果不需要滚动):

-----------
|  Item1  |
| ------- |
|  Item2  |
| ------- |
| Summary |
| ------- |
|         |
|         |
|         |
|         |
 ----------
Run Code Online (Sandbox Code Playgroud)

期望的外观:

-----------
|  Item1  |
| ------- |
|  Item2  |
| ------- |
|         |
|         |
|         |
|         |
| ------- |
| Summary |
 ----------
Run Code Online (Sandbox Code Playgroud)

And*_*dEx 6

我正在考虑您的任务,并最终整理了一些您可能会觉得有用的代码。不过这个阶段有问题。

我所做的是在回收站视图中添加了一个项目装饰器:

recyclerView.addItemDecoration(new StickySummaryDecoration());
Run Code Online (Sandbox Code Playgroud)

这是我对基本装饰器的实现(坦率地说,这是我第一次使用项目装饰器,所以它可能不是最佳的或完全正确的,但我已经尽力了):

recyclerView.addItemDecoration(new StickySummaryDecoration());
Run Code Online (Sandbox Code Playgroud)

所以我得到了什么。

短列表中底部停靠的摘要:

短名单

您需要向下滚动才能看到长列表中的摘要:

长列表(您需要向下滚动才能看到摘要元素)

现在关于一个问题。在长列表中向上滚动时的这种副作用是我还没有解决的。

问题

我的实验上传到github 仓库以防万一:)

编辑

刚才我发现回收器视图中缺少的行元素是我回收的具有GONE可见性的摘要视图持有者。应该有办法把它带回来...

编辑 2

我重新考虑了我的第一个解决方案并稍微更改了代码以解决长列表的情况(在这种情况下,项目装饰被禁用(我认为它更接近您想要实现的目标)),这会自动解决丢失的行问题。