13
public Object instantiateItem(ViewGroup container, int position) {
      ImageView view = new ImageView();
      container.addView(view);
      return view;
}

PagerAdapter のサンプル コードをいくつか読みましたが、それらはすべて addview メソッドを記述しています。上記は簡単なコードです. 'return view' は表示用のビューを返すために使われます. しかし, container.addView(view) は何をしますか?

4

2 に答える 2

21

ビューをコンテナに追加すると、実際に画面に表示されます。によって返されるオブジェクトinstantiateItemは単なるキー/識別子です。Fragmentページのビューを管理するためにのようなものを使用していない場合は、この目的で実際のビューを使用すると便利な傾向があります。(例については、ソースを参照してくださいFragmentPagerAdapter。)

PagerAdapterメソッドisViewFromObjectは、ページャーがどのビューがどのキーに属しているかを知るのに役立ちます。ビューをキーオブジェクトとして返すだけの場合は、このメソッドを次のように簡単に実装できます。

public boolean isViewFromObject(View view, Object object) {
    return view == object;
}
于 2012-06-06T04:12:52.273 に答える
1

PageAdapter のソース コードに含まれるコメントに従って

public abstract Object instantiateItem(View container, int position);    

指定された位置のページを作成します。アダプターは、ここで指定されたコンテナーにビューを追加する責任がありますが、それがから戻るまでにこれが行われていることを確認する必要があるだけです。

コンテナページが表示されるコンテナ ビュー。

Position インスタンス化するページの位置。

新しいページを表すオブジェクトを返します。これはビューである必要はありませんが、ページの他のコンテナーにすることができます。

于 2012-06-06T04:21:32.680 に答える