RecyclerView滚动到指定item

添加数据

    一组平平无奇的数据,从0-999共一千条,Adapter类就不外放了,没意思

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class MainActivity extends AppCompatActivity{

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

RecyclerView recyclerView = findViewById(R.id.recyclerView);
setData(recyclerView);
}

private void setData(RecyclerView recyclerView) {
List<String> strings = new ArrayList<>();
// 一千条数据
for (int i = 0; i < 1000; i++) {
strings.add("数据" + i);
}
MyRecyclerViewAdapter myRecyclerViewAdapter = new MyRecyclerViewAdapter(this,strings);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this,RecyclerView.VERTICAL,false);
recyclerView.setAdapter(myRecyclerViewAdapter);
recyclerView.setLayoutManager(linearLayoutManager);
// 添加一条分割线
recyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));
}
}

    看下效果吧

item滚动

    当RecyclerView的item全部加载完毕后,毫无疑问,第一条也就是item0一定是位于顶部的,那如何指定任意一个item,使得RecyclerView滑动到这个item置顶

    妈的,经过研究,根本就没有那么麻烦,我他妈又是视图树观察又是布局加载监听的,其实一个scrollToPosition()就搞定了,破防了妈的

1
2
3
4
5
6
7
8
9
//    直接调用这个方法就是了
private void setItemTo(RecyclerView recyclerView, final int position){
recyclerView.scrollToPosition(position);//滚动到指定item!!!
}

// 如果不想使用RecyclerView,用它的布局管理器也可以
private void setItemTo(LinearLayoutManager linearLayoutManager, int position){
linearLayoutManager.scrollToPosition(position);
}