ビューページャーを使用してギャラリーを作成しようとしています。それにもかかわらず、更新されるのは常に位置 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));
必要に応じて、イメージビューに画像を追加します。
ページャーに位置0から開始するように要求していることを除いて、機能しているようです。これは、私の画像で更新された位置1からのビューです。
私が使用するときfindViewById(somethingInflatedByThePager)
、それを現在のページにする必要があります。どうすればそれを行うことができますか?