我在右下方有一个带有FAB的RecyclerView。
滚动时我想让用户进一步向上滚动,使最后一个项目完全可见并且不被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>
更新 使用项目装饰是正确的答案。
答案 0 :(得分:0)
我认为如果内容向下滚动,更好的解决方案应该计算滚动范围并隐藏工厂。
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。