【发布时间】:2016-09-09 09:32:53
【问题描述】:
我有 RecyclerView 和一些视图。它们每秒钟都在实现。问题是,屏幕每秒都在向上滚动(刷新),而用户正在向下滚动。数据更新后如何使其保持位置? 这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView)findViewById(R.id.mainRecyclerView);
layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
initializeData();
adapter = new RecyclerViewAdapter(offers);
startCount();
}
private void startCount(){
final Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
updateData();
handler.postDelayed(this, 1000);
}
};
handler.postDelayed(runnable, 1000);
}
private void initializeData(){
offers = new ArrayList<>();
seconds = new ArrayList<>();
seconds.add(600);
seconds.add(10);
seconds.add(20);
offers.add(new Offer(seconds.get(0), R.drawable.zdj, 200));
offers.add(new Offer(seconds.get(1), R.drawable.zdj));
offers.add(new Offer(seconds.get(2), R.drawable.zdj));
}
private void updateData(){
int i = 0;
int tempSec;
for(int j = 0; j < seconds.size();j++){
tempSec = seconds.get(j);
if(tempSec==0){
offers.remove(j);
seconds.remove(j);
break;
}
tempSec--;
seconds.set(j, tempSec);
offers.set(j, new Offer(seconds.get(j), R.drawable.zdj));
}
initializeAdapter();
}
private void initializeAdapter() {
adapter.notifyItemChanged(offers.size());
recyclerView.setAdapter(adapter);
}
【问题讨论】:
-
如果你可以玩线程,为什么你想停止滚动,应用一个并行线程,它的主线程用于在回收器视图中加载数据。
标签: android scroll android-recyclerview