我有一个回收站视图,在右下顶部有一个FAB。
当滚动时,我希望允许用户进一步向上滚动,以使最后一项完全可见,并且不被FAB覆盖。允许在底部额外显示48像素的背景即可。
我尝试添加一个透明的页脚项目,这可以解决问题。但是,在向列表中添加排序后,透明页脚项在排序过程中会产生一些 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>
使用物品装饰更新是这里的正确答案。
我认为更好的解决方案应该计算滚动范围,如果内容是向下滚动,隐藏fab。
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。
我有一个动态填充的RecyclerView。 当新消息到达时,我使用此代码向下滚动到最后一个条目: 现在的问题是:如果用户已经向上滚动阅读旧消息,它不应该向下滚动。怎么才能检测出来?
我有一个endless Recycler视图,其中包含使用JSoup从一个在线论坛线程中提取的数据。recyclerview将不断填充自己,直到用户到达最后一页。我想膨胀一个“端视图”,一旦用户到达最后一页,滚动到最后一个可见的项目,但我无法检索它。 我尝试使用getItemCount()和findLastVisibleItemPotion()从回收器视图linearlayoutManager。它
我有一个视图寻呼机,在其中一个片段中,我有两个单独的片段,分别包含一个垂直和一个水平的回收视图。 当我将水平循环视图滚动到最后一个项目并尝试进一步滑动时,视图寻呼机滚动到下一页。我不想发生这种事。当我试图覆盖水平循环视图时,我想禁用viewpager的分页。 但是,当我在其他地方滑动时,我不想禁用viewpager的分页功能。例如,如果我在垂直recyclerview或父片段中的任何空白区域上滑动
这是我的适配器 我想每次滚动一个项目。比如你在Instagram上看到多张照片。我怎么能那样做? 谢谢 和我的XML;
我有一个水平回收视图。每个子级包含一个TextView和一个垂直RecyclerView。垂直RecyclerView的子级仅包含TextView。 垂直滚动非常平滑,但水平滚动滞后很多。我已经尝试在onBindViewHolder中使用swapAdapter,而不是setAdapter,但这并没有解决问题。我也尝试过更改数据集并调用notifyDataSetChanged(),但这也没有帮助。
在其他回收器视图中有一个回收器视图。两者都需要垂直滚动。外部回收器视图滚动正常,但内部回收器视图滚动不正常。 这是代码: ViewAdapter如下: 我尝试了以下两种回收商观点,但都无法解决问题 也尝试了这个: