如何使“回收者”视图滚动超过项目的高度

时间:2019-01-10 10:22:48

标签: android android-recyclerview

我有一个回收站视图,从屏幕顶部开始一直到屏幕底部。 屏幕底部还有一个视图,隐藏了回收站视图的最后一项。

我希望回收者视图滚动更多一点,直到底部元素的顶部。因此,最后一项可能是可见的。

我知道,就像我可以在回收者视图的列表末尾添加一些虚拟的空项目一样。但是我不想打扰回收者视图中的项目数量。 我是否应该调整回收器视图最后一项的高度,以使其内容位于底部元素上方?

任何人都有更好的主意。 最好的方法是什么?

5 个答案:

答案 0 :(得分:1)

我得到了答案。 需要在recyclerview中设置

android:clipToPadding="false"
android:paddingBottom="the bottom padding needed"

答案 1 :(得分:0)

请勿将回收者视图的高度设置为 match_parent 。使用“相对布局”并相对于视图(要在屏幕底部添加的视图)更改recycler vie的属性。 例如。 Layout_above

OR 您可以简单地使用ScrollView滚动整个视图。

<ScrollView
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:fillViewport="true"
    xmlns:android="http://schemas.android.com/apk/res/android"
>
<RelativeLayout>
</RelativeLayout>
</ScrollView>

答案 2 :(得分:0)

使布局的根视图为ScrollView: 像这样:

<ScrollView>
   <LinearLayout>
       <RecyclerView/>
       <TheItemsYouWantToSee/>
   </LinearLayout>
</ScrollView>

您可以使用其他容器来代替LinearLayout:CoordinatorLayout,Constraint ...,用于将项目包装在滚动视图中

答案 3 :(得分:0)

添加您的recyclerview以及要保留在这样的RelativeLayout中的底视图-

<RelativeLayout>
   <RecyclerView/>
   <YourAnotherView/>
</RelativeLayout>

然后,将layout_above属性添加到R​​ecyclerView。此属性将始终使recyclerview保持在底视图上方。

答案 4 :(得分:0)

虚拟视图正常工作。更重要的是,它不会太混乱。只需添加糊状假人,您需要使其在View之上,并使其在onBindViewHolder的开头不可见

override fun getItemCount(): Int {
        //two more items (invisible) for end of the list
        return  list.size + 2
    }

以及在填充项onBindViewHolder

之前
if(position >= list.size) {
            holder.item.visibility = View.INVISIBLE
            return
        } else
            holder.item.visibility = View.VISIBLE