我有一个RecyclerView
带有一个带有不同高度LinearLayoutManager
项目的适配器支持的。有没有办法告诉设置滚动位置,以便项目 X (或多或少)准确地出现在屏幕底部?RecyclerView
我试过LinearLayoutManager.scrollToPosition()
了,但这会将项目定位在视图的顶部。
我有一个RecyclerView
带有一个带有不同高度LinearLayoutManager
项目的适配器支持的。有没有办法告诉设置滚动位置,以便项目 X (或多或少)准确地出现在屏幕底部?RecyclerView
我试过LinearLayoutManager.scrollToPosition()
了,但这会将项目定位在视图的顶部。
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);
在 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 的 Adapter 类中设置索引 您需要在哪里滚动...
if (Condition) {
mainActivity.Index=position+1;
}
}
快乐的编码...