当前位置: 首页 > 知识库问答 >
问题:

我如何创建一个循环的(无尽的)RecyclerView?

班展
2023-03-14

我正在尝试使我的recyclerview循环回到列表的开始。

这是我当前用来检测列表末尾的东西(在这里找到):

 @Override
    public void onScrolled(RecyclerView recyclerView, int dx, int dy) {

        visibleItemCount = mLayoutManager.getChildCount();
        totalItemCount = mLayoutManager.getItemCount();
        pastVisiblesItems = mLayoutManager.findFirstVisibleItemPosition();

        if (loading) {
            if ( (visibleItemCount+pastVisiblesItems) >= totalItemCount) {
                loading = false;
                Log.v("...", ""+visibleItemCount);
            }
        }
 }

当滚动到最后时,我希望视图在显示列表顶部的数据时是可见的,或者当滚动到列表顶部时,我将显示列表底部的数据。

例如:

视图5视图1视图2视图3视图4

共有1个答案

伊裕
2023-03-14

没有办法使它无限,但有办法使它看起来像无限。

>

  • 适配器中重写getCount()以返回诸如integer.max_value:

    @Override
    public int getCount() {
        return Integer.MAX_VALUE;
    }
    

    GetItem()GetView()中模除(%)位置的实数项数:

    @Override
    public Fragment getItem(int position) {
        int positionInList = position % fragmentList.size();
        return fragmentList.get(positionInList);
    }
    

    在结束时,将当前项设置为中间的某个东西(否则,它将只在向下的方向上是无尽的)。

    // scroll to middle item
    recyclerView.getLayoutManager().scrollToPosition(Integer.MAX_VALUE / 2);
    

  •  类似资料:
    • 试图实现某种游戏循环,直到满足条件。 然而,在测试过程中,我无法解决while循环不等待promise的解决的问题,相反,它只是一次又一次地调用它们,导致浏览器崩溃。 安装组件时调用combatStart() 当我分派动作时,“noOfEnememesAttked”递增,当它达到5时,循环应该停止。所以它应该持续大约15秒。 代码一直工作到我添加while循环为止,否则它会按预期工作,在安装组件3

    • 我有一个名为Card的类,我有一个for循环: 我想做的是基于for循环创建新实例。例如,我希望名字是card1、card2、card3等等。数字来自for循环。 我试过这个,但似乎不起作用: 谁能告诉我我做错了什么吗? 谢谢 所以我正在使用气垫船充满鳗鱼的解决方案,但我还有另一个问题。 我用的是卡片列表。添加(新卡()),当我尝试使用Card(I)设置名称时,java不允许我这么做。在没有i的情

    • 问题内容: 我已经存储了一个in in 组件。我传递的和为从父到子。然而,如果在父母一些事件,被触发,因此,儿童被执行。 由于造成了无限循环 (因为它触发了子组件内部的setState()) ,所以我放置了条件。但这不能防止错误。 子组件即如下: 父组件即MonthToDate如下: 我想念什么? 另外,在收到in子组件之后,我想基于那个渲染另一个组件。例如component只能处理一种类型的。如

    • 问题内容: 我有以下代码: 这里的主要循环是: 但是我不确定这是做到这一点的最佳方法(如果我想输入一些信息,这将不起作用) 然后我尝试了这个: 但是,正如我已经意识到的那样,它并没有达到我的预期。所以问题是:创建主循环的最佳方法是什么? 问题答案: Tkinter为此提供了一个强大的工具,它被称为after。它旨在用作同步睡眠命令,但可以通过调用自身在mainloop内建立一个循环。 之后,是一个

    • 有没有办法只使用一个具有多个整数的 for 循环?目前我只编写了 int num0 的代码。但是有没有办法将 num1,num2,num3 的其余部分放在同一个代码中?我之所以在这里要求这样做,是因为我作为程序员没有经验,我想知道你们是否知道是否有解决方案。(请原谅我的语法不好)

    • 问题在代码的注释中,很抱歉,我认为它更整洁,因为流程很重要,我想。。。 //*这是来自Oracle:(https://docs.oracle.com/javase/6/docs/api/java/util/Scanner.html#hasNextInt()) ”hasNextInt 公共布尔值hasnetint() 如果此扫描仪输入中的下一个标记可以使用nextInt()方法解释为默认基数中的in