RecyclerView:设置滚动位置,使项目出现在视图底部

7

我有一个RecyclerView,其中使用了LinearLayoutManager和一个具有不同高度的项的适配器。是否有一种方法可以告诉RecyclerView将滚动位置设置为X项(或者更多)几乎完全出现在屏幕底部?

我尝试过LinearLayoutManager.scrollToPosition(),但这会将该项定位到视图顶部。


scrollToPosition() 没有起作用吗?不确定屏幕底部。 - Malith Lakshan
scrollToPosition()将项目定位在视图顶部。我想要相反的效果。 - Kirill Rakhman
1
希望您能将此链接中的信息附加到其中,并找到一种解决方法。https://dev59.com/bl8f5IYBdhLWcg3wJPxl - Malith Lakshan
2个回答

2
MyAdapter mAdapter;
RecyclerView recyclerView;
List<ItemData> data = new ArrayList<>();
LinearLayoutManager llm = new LinearLayoutManager(this);

在OnCreate方法中尝试这个

recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(llm);
llm.setStackFromEnd(true);
mAdapter = new MyAdapter(data, getApplication());
recyclerView.setAdapter(mAdapter);

当您插入一个项目时,请尝试以下操作。
mAdapter.notifyItemInserted(data.size() - 1);
llm.scrollToPosition(data.size() - 1);

1

尝试在mainActivity.class中使用以下代码:

 rv_journey.setAdapter(ca);
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    scrollList();
                }
            }, 500);

这是我的滚动方法。
private void scrollList(){
        rv_journey.post(new Runnable() {
            @Override
            public void run() {
                // Call smooth scroll
                rv_journey.smoothScrollToPosition(Index);
            }
        });
    }

从扩展RecyclerView.Adapter的适配器类中设置索引,需要滚动时...
if (Condition) {
                        mainActivity.Index=position+1;

                    }
                } 

愉快的编程...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接