1

動的ビューを使用して Viewpager を実装したいです。つまり、ユーザーが左右にフリック/ドラッグすると、ビューが更新されます。ビューは、事前に保存されたデータベースの次の行を使用して更新されます。どのように実装できますか?
これを行う理由は、db に約 3000 のエントリがあり、一度に 1 つずつ表示したいためです。一度に多くのビューを作成することはできません。

4

1 に答える 1

1

ベローなど、お役に立てれば幸いです。

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;
}
}
于 2015-06-18T15:05:17.750 に答える