Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 具有大量视图或动态视图的Viewpager_Android_Android Layout_Android Intent_Android Emulator_Android Widget - Fatal编程技术网

Android 具有大量视图或动态视图的Viewpager

Android 具有大量视图或动态视图的Viewpager,android,android-layout,android-intent,android-emulator,android-widget,Android,Android Layout,Android Intent,Android Emulator,Android Widget,我想实现一个具有动态视图的Viewpager,即当用户向左/向右轻弹/拖动视图时,视图会自动更新。视图会使用预存储数据库中的下一行进行更新。我如何实现它? 我想这样做的原因是:我在db中有大约3000个条目,我想一次显示一个。我不能一次创建这么多视图。如bellow,希望能帮助您 public class BottomAdatper extends PagerAdapter { @Override public int getCount() { return 10000; } @Ove

我想实现一个具有动态视图的Viewpager,即当用户向左/向右轻弹/拖动视图时,视图会自动更新。视图会使用预存储数据库中的下一行进行更新。我如何实现它?

我想这样做的原因是:我在db中有大约3000个条目,我想一次显示一个。我不能一次创建这么多视图。

如bellow,希望能帮助您

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;
}
}
公共类BottomAdatper扩展PagerAdapter{
@凌驾
public int getCount(){
返回10000;
}
@凌驾
公共布尔值isViewFromObject(视图,对象o){
返回视图==o;
}
ArrayList缓存=新建ArrayList();
@凌驾
公共项(视图组容器、int位置、对象){
caches.add((TextView)对象);
container.removeView((视图)对象);
}
@凌驾
公共对象实例化项(视图组容器,int位置){
TextView tv=null;
if(caches.size()==0){
tv=新文本视图(container.getContext());
tv.setLayoutParams(新的ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_父级,ViewGroup.LayoutParams.MATCH_父级));
电视。设置重力(重力。重心);
电视.setTextSize(60);;
电视.背景色(颜色.黄色);
}否则{
tv=缓存。删除(0);
}
tv.setText(“+位置);
container.addView(电视);
返回电视;
}
}

如贝娄,希望能帮助您

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;
}
}
公共类BottomAdatper扩展PagerAdapter{
@凌驾
public int getCount(){
返回10000;
}
@凌驾
公共布尔值isViewFromObject(视图,对象o){
返回视图==o;
}
ArrayList缓存=新建ArrayList();
@凌驾
公共项(视图组容器、int位置、对象){
caches.add((TextView)对象);
container.removeView((视图)对象);
}
@凌驾
公共对象实例化项(视图组容器,int位置){
TextView tv=null;
if(caches.size()==0){
tv=新文本视图(container.getContext());
tv.setLayoutParams(新的ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_父级,ViewGroup.LayoutParams.MATCH_父级));
电视。设置重力(重力。重心);
电视.setTextSize(60);;
电视.背景色(颜色.黄色);
}否则{
tv=缓存。删除(0);
}
tv.setText(“+位置);
container.addView(电视);
返回电视;
}
}