我正在尝试使用视图传呼机制作图库。尽管如此,它始终是位置1的视图,而我正在尝试更新当前页面(默认为0)。
首先,我创建了一个将被寻呼机放大的视图。该视图由4个ImageView和4个textview组成。
然后我为寻呼机创建了一个适配器:
public class LivePagerAdapter extends PagerAdapter {
private CameraList cameras = null;
public LivePagerAdapter(CameraList cams)
{
this.cameras = cams;
}
@Override
public int getCount() {
return this.cameras.size() /4; // 4 imageview in a page
}
public void setCameras(CameraList cams)
{
this.cameras = cams;
}
@Override
public Object instantiateItem(View container, int position) {
LayoutInflater inflater = LayoutInflater.from(container.getContext());
View view = inflater.inflate(R.layout.pager,null);
((ViewPager) container).addView(view,0);
return view;
}
}
最后,在我的活动中,我像这样例示了寻呼机:
adapter = new LivePagerAdapter(this.listeCamera);
pager = (ViewPager) findViewById(R.id.camspager);
pager.setAdapter(adapter);
pager.setCurrentItem(0);
之后,我用4 imageview初始化一个数组:
tabImageView.add((ImageView) findViewById(R.id.cam1)); //Imageview located in the view loaded by the pager
tabImageView.add((ImageView) findViewById(R.id.cam2));
tabImageView.add((ImageView) findViewById(R.id.cam3));
tabImageView.add((ImageView) findViewById(R.id.cam4));
并在需要时在imageview中添加图像。
除了我要寻呼机从位置0开始并且这是从位置1开始的视图(它已用我的图像更新)之外,它似乎起作用。
当我使用
findViewById(somethingInflatedByThePager)
时,我需要它作为当前页面,我该怎么做? 最佳答案
如果将((ViewPager) container).addView(view,0);
替换为((ViewPager) container).addView(view);
会发生什么?