【发布时间】:2012-05-30 17:14:38
【问题描述】:
我想实现一个带有动态视图的 Viewpager,即当用户向左/向右轻拂/拖动视图时视图会自行更新。视图使用预存储数据库中的下一行更新。我该如何实现它? 我想这样做的原因是:我在 db 中有大约 3000 个条目,我想一次显示一个。我不能一次创建这么多视图。
【问题讨论】:
标签: android android-layout android-intent android-emulator android-widget
我想实现一个带有动态视图的 Viewpager,即当用户向左/向右轻拂/拖动视图时视图会自行更新。视图使用预存储数据库中的下一行更新。我该如何实现它? 我想这样做的原因是:我在 db 中有大约 3000 个条目,我想一次显示一个。我不能一次创建这么多视图。
【问题讨论】:
标签: android android-layout android-intent android-emulator android-widget
如下,希望对你有所帮助。
public class BottomAdatper extends PagerAdapter {
@Override
public int getCount() {
return 10000;
}
@Override
public boolean isViewFromObject(View view, Object o) {
return view == o;
}
ArrayList<TextView> caches = new ArrayList<>();
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
caches.add((TextView) object);
container.removeView((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
TextView tv = null;
if (caches.size() == 0) {
tv = new TextView(container.getContext());
tv.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
tv.setGravity(Gravity.CENTER);
tv.setTextSize(60);
tv.setBackgroundColor(Color.YELLOW);
} else {
tv = caches.remove(0);
}
tv.setText("" + position);
container.addView(tv);
return tv;
}
}
【讨论】: