2016-03-30 5 views
0

ビュー・ページャー・アダプターに3つのフラグメントがあります。私は左から右に、または右から左にスワイプし、それらの断片を表示させることができます。しかし、私は彼が3番目の断片になると、ユーザーがスワイプしないようにしたい。同様に、彼は第三の断片をオープンしたら、彼は前の二つの断片を閲覧できないようにする必要があり3回目のフラグメントをスワイプしたら、ビューページアダプターから前の2つのフラグメントを削除するにはどうしたらいいですか?

パブリッククラスPagerAdapterはFragmentPagerAdapter {

FragmentManager mFragmentManager; 
private ArrayList<View> views = new ArrayList<View>(); 

public PagerAdapter(FragmentManager fm) { 

    super(fm); 
    mFragmentManager = fm; 
} 

@Override 
public Fragment getItem(int i) { 

     switch (i) 
     { 
      case 0 : 
       return new FragmentOne(); 

      case 1 : 
       return new FragmentTwo(); 

      case 2 : 
       return new FragmentThree(); 

      default : 
       break; 
     } 

    return null; 
} 

@Override 
public int getCount() { 
    return 3; 
} 

@Override 
public Object instantiateItem(ViewGroup container, int position) { 
    View v = views.get (position); 
    container.addView (v); 
    return v; 
} 

@Override 
public void destroyItem(ViewGroup container, int position, Object object) { 
    container.removeView(views.get(0)); 
} 

}

答えて

0

はい、あなたはできるはずですが拡張されています。チェックアウトアンドロイドデベロッパードキュメント。 FragmentPagerAdapter

ます。public void destroyItem(のViewGroupコンテナ、int型の位置、Objectオブジェクト)

指定された位置のためのページを削除します。アダプタは、コンテナからビューを削除する責任がありますが、これは、これがfinishUpdate(ViewGroup)から返されるまでに行われることを確認する必要があります。

+0

この場合、destrouItemを使用すると、単一の位置だけを渡すことができます!どうすれば2つの断片を渡すことができますか?同様に、3番目のフラグメントをロードすると、フラグメント2とフラグメント1に戻ることはできません。 –

関連する問題