ビューページャーで 1 つのフラグメントを複数回使用することは可能ですか? ViewPager を使用して動的に更新される UI を構築しようとしています。リストビューアダプターのように、同じデザイン、基本的にページごとに異なるデータを持つ同じフラグメントを使用したいと考えています。
質問する
6782 次
2 に答える
5
ViewPager のすべてのページに対して同じ Fragment クラスをインスタンス化し、ViewPager の位置を渡して何を表示するかを制御できます。そんな感じ:
public class MyFragment extends Fragment {
private int mIndex;
public MyFragment(int index) {
mIndex = index;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
switch(mIndex){
case 0:
// do you things..
case 1:
// etcetera
}
}
}
次に、 FragmentPagerAdapter で:
public static class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public int getCount() {
return NUM_ITEMS;
}
@Override
public Fragment getItem(int position) {
return new MyFragment(position);
}
}
そうすれば、switch/case ステートメントで必要なものだけを変更して、ほとんどのコードを再利用できます。
于 2012-11-17T15:37:06.917 に答える
3
class
vsの概念を誤解していobject of class
ます。ソースMyFragment.java
コードは、演算子 ( )を使用してインスタンス化class
するたびに、どれが「生き物」になるかを定義します。これにより、. 意図的にこれを防止しない限り (Singleton パターンを使用するなど) 、好きなだけケーキを作ることができます。同じ方法で、単一のレシピを使用してケーキをいくつでも作ることができます。そして、これはフラグメントにも当てはまります。new
new MyFragment();
object
instance
class
instances
class
そのため、ページごとに個別の object
(別名instance
)を作成する限り、必要なことを実行できるはずです。class
于 2012-11-17T16:28:45.220 に答える