更新房间后将recyclerview滚动到新位置

时间:2019-04-29 08:07:45

标签: android android-recyclerview android-room

我有一个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的新用户列表位置?

0 个答案:

没有答案