我有一个recyclerView
,显示了Room数据库中的用户列表。
道
@Query("SELECT * from users_table ORDER BY name COLLATE NOCASE ASC")
LiveData<List<User_Entity>> getAllUsers();
活动
RecyclerView mRecyclerView = view.findViewById(R.id.traininglistview);
usersViewModel = ViewModelProviders.of(this).get(UsersViewModel.class);
usersViewModel.getAllUsers().observe(this, new Observer<List<User_Entity>>() {
@Override
public void onChanged(@Nullable List<User_Entity> user_entities) {
mUsers = user_entities;
mAdapter.setUsers(user_entities);
}
});
mAdapter = new UsersAdapter(context, usersViewModel);
mRecyclerView.setAdapter(mAdapter);
mLayoutManager = new LinearLayoutManager(context);
mRecyclerView.setLayoutManager(mLayoutManager);
...
用户列表按用户名排序。
当我单击用户项目时,将启动一个新的“活动”以允许我编辑用户值。
如果更改用户名,由于查询是按名称排序的,因此新用户recyclerView位置也会更改。
从用户值编辑返回时,如何滚动recyclerView以显示刚刚编辑的用户?或者,如何找到要使用mLayoutManager.scrollToPosition
的新用户列表位置?