Java 如何保存RecyclerView';什么是滚动位置?当应用程序关闭时
如何在应用程序关闭后保存我在RecyclerView适配器中的最后位置,并在返回应用程序后恢复它Java 如何保存RecyclerView';什么是滚动位置?当应用程序关闭时,java,android,firebase,android-recyclerview,Java,Android,Firebase,Android Recyclerview,如何在应用程序关闭后保存我在RecyclerView适配器中的最后位置,并在返回应用程序后恢复它 RecyclerList.add(m); messageAdapter = new MessageAdapter(context, RecyclerList, leftUser, rightUser, this); recyclerView.setAdapter(messageAdapter); } public void LoadData()
RecyclerList.add(m);
messageAdapter = new MessageAdapter(context, RecyclerList, leftUser, rightUser, this);
recyclerView.setAdapter(messageAdapter);
}
public void LoadData() {
if (isNetworkAvailable()) {
if (i < arrSplit.length) {
recyclerListSize = RecyclerList.size();
String temp = arrSplit[i];
Data m = new Data(temp);
RecyclerList.add(m);
Objects.requireNonNull(recyclerView.getAdapter()).notifyItemInserted(recyclerListSize);
recyclerView.smoothScrollToPosition(recyclerListSize);
i++;
} else {
//
RecyclerList.add(m);
messageAdapter=newmessageadapter(上下文、回收列表、leftUser、righuser、this);
recyclerView.setAdapter(messageAdapter);
}
公共void LoadData(){
if(isNetworkAvailable()){
如果(i
根据我的理解,您希望在您的RecyclerView中存储项目的最后位置可见,因此当再次返回应用程序时,请滚动至关闭应用程序/活动之前的最后位置
首先,你可以像这样从RecyclerView的LayoutManger那里得到最后一个职位
//define LinearLayoutManager object as global because we want to use in another method
linearLayoutManager=new LinearLayoutManager(this);
recyclerView.setLayoutManager(linearLayoutManager);
现在我们想要得到最后一个位置,并在活动关闭或使用生命周期活动返回后台时存储它
如果您想了解更多有关活动生命周期的信息,请访问
因此,在活动中的暂停中,使用SharedPrefrane添加存储最后位置
@Override
protected void onPause() {
super.onPause();
SharedPreferences preferences =getSharedPreferences("Pref",MODE_PRIVATE);
//get last position Visible Item Position
int lastPos= linearLayoutManager.findLastCompletelyVisibleItemPosition();
//store lastPos
preferences.edit().putInt("lastPos",lastPos).apply();
}
知道每次活动转到后台或应用程序关闭时,我们存储最后位置
在获取数据并设置适配器之后,通过add检索最后一个位置并调用此方法
private int getLastItemPosition(){
SharedPreferences preferences =getSharedPreferences("Pref",MODE_PRIVATE);
return preferences.getInt("lastPos",0);
}
请发布一些有关您的问题以及您迄今为止尝试的内容的信息。您在获取滚动位置、保存滚动位置、加载滚动位置或设置滚动位置时是否遇到困难?请使用SharedPreference在OnBindView()中存储最后一个项目的位置方法,并在应用程序打开时返回它page@Campbell:我的问题是我有一个recyclerview,但当我返回或关闭应用程序时,所有内容都会重新开始:(我想保留它们,即使在我关闭应用程序时,对不起,我的english@MahmoudAbuElheja你能帮我解决这个问题吗