已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
18小时前关门了。
Improve this question
我正在建立一个聊天应用程序,我已经在回收视图中表示了聊天,但我如何保存回收视图的位置。我想说的是,如果我已经滚动到一些特定的位置,我如何进入相同的位置,即使在活动被破坏后?我尝试了很多,去了文档,YouTube教程,没有工作!
我试过这个,但是它不起作用!!
@覆盖受保护的void onPause(){ super.onPause();
lastPosition = linearLayoutManager.findFirstVisibleItemPosition();
Log.d(TAG, "onDataChange: " + lastPosition);
SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
SharedPreferences.Editor e = getPrefs.edit();
e.putInt("lastPos", lastPosition);
e.apply();
}
@Override
protected void onResume() {
super.onResume();
String currentId = FirebaseAuth.getInstance().getUid();
assert currentId != null;
FirebaseDatabase.getInstance().getReference().child("presence").child(currentId).setValue("Online");
SharedPreferences getPrefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
lastPosition = getPrefs.getInt("lastPos", 0);
chatsBinding.chatsRecycler.scrollToPosition(lastPosition);
Log.d(TAG, "onDataChange: rv" + lastPosition);
}
1条答案
按热度按时间brccelvz1#
你可以做一件事保存recyclerView的索引,在那里你离开了聊天滚动,在对象可能是UserChat {它可能包括你的聊天列表,用户谁聊天,id等,只是添加一个数据成员的最后访问作为int}
现在,当您将适配器传递给recyclerView时,请调用recyclerView的方法