我的RecyclerView
LinearLayoutManager
由适配器支持,其中的身高不同。有没有办法告诉RecyclerView
设置滚动位置,以便项目X(或多或少)完全出现在屏幕底部?
我尝试了LinearLayoutManager.scrollToPosition()
,但这会将项目置于视图的顶部。
答案 0 :(得分: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 :(得分: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);
}
});
}
从Adapter类设置索引,扩展RecyclerView.Adapter你需要滚动的地方......
if (Condition) {
mainActivity.Index=position+1;
}
}
快乐编码......