繁体   English   中英

recyclerview.scrollToPosition(adapterarray.size()-1) 导致项目以相反的顺序出现

[英]recyclerview.scrollToPosition(adapterarray.size()-1) causes to bring the items in reversed order

我正在使用 Android Studio。

我的 recylview 及其适配器运行良好。 我的 recyclerview 因为它的设计只能有 6 行。 所以从 1 到 6 的项目显示完美。 添加第 7 项时,它不在 recyclerView 边框之外,因此我应该手动滚动它以查看第 7 行。 我决定让它自动滚动到 recyclerView 的最后一个项目行。 这意味着最后 6 行(假设有 10 个项目,因此应自动显示第 5、6、7、8、9、10 行。

为了做到这一点,我在recyclerview.setAdapter(adapter);行之后添加了以下行

recyclerView.scrolltoposition(adapterarray.size()-1)

但是现在,这些项目以相反的顺序显示。 最后一项位于 recylerVeiw 的顶部。 似乎 scrolltoposition 不仅对 recyclerVievitself 排序,而且对适配器排序。

如果超过 6 行,在 recyclerView 中添加新项目后如何简单地执行自动滚动?

尝试这样的事情:

recyclerView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
            @Override
            public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
                if (bottom < oldBottom) {
                    recyclerView.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                  recyclerView.smoothScrollToPosition(adapter.getItemCount());
                        }
                    }, 100);
                }
            }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM