1

ビューページャーを使用してギャラリーを作成しようとしています。それにもかかわらず、更新されるのは常に位置 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)、それを現在のページにする必要があります。どうすればそれを行うことができますか?

4

1 に答える 1

3

((ViewPager) container).addView(view,0);で置き換えるとどうなるか((ViewPager) container).addView(view);

于 2012-05-04T09:52:21.967 に答える