2012-02-05 9 views
4

私のアプリはandroid.support.v4.view.ViewPagerクラスを使用しています。 ViewPagerの各ページについて、それぞれ独自のレイアウトファイルを持つ1つのFragmentが必要です。各フラグメントは、それぞれのファイルに定義されています。私はこれを実装するのに苦労しています。明確にするために、そこにある:Android ViewPager複数のフラグメントクラス(別々のレイアウトファイルを使用)

1 ViewPager
4断片ファイル - FragmentOne.class、FragmentTwo.class、FragmentThree.class、FragmentFour.class
4 XMLレイアウトファイル - frag_one.xml、frag_two.xml、frag_three。 xml、frag_four.xml

私が見た例では、1つのレイアウトファイルしか扱っていません。ここで

はViewPagerが開催され、私のFragmentActivityです:

public class Main extends FragmentActivity { 
    MyAdapter mAdapter; 
    ViewPager mPager; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     mAdapter = new MyAdapter(getSupportFragmentManager()); 

     mPager = (ViewPager) findViewById(R.id.pager); 
     mPager.setAdapter(mAdapter); 

    } 

    public static class MyAdapter extends FragmentPagerAdapter { 
     public MyAdapter(FragmentManager fm) { 
      super(fm); 
     } 

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

     @Override 
     public Fragment getItem(int position) { 
      return EditorFragment.newInstance(position); 
     } 
    } 

} 

私の主な質問は:どのように私はViewPagerでそれら全体で4つの別々の断片ファイルとスムーズにページを認識するために、MyAdapter、アダプタを得るのですか? getItem()にはどのような変更を加える必要がありますか?

何か助けていただければ幸いです。

EDIT:

EDIT 2:はい、それらのbreak文は、それを固定しそう

、私が提案し、この思い付いたlulumeyaてみました。それは今働く。助けてくれた皆様に感謝します!今、私は素敵な分離をありがとう。

アプリのルーキーは、常に良い兆候ですが、レイアウト4に固執しています。私が右にページを出すと、すべてのページに対してレイアウト4になります。私はインフレータのレイアウトを各フラグメントごとに変更してしまいました。私はまだこれに取り組んでいます。 @lulumeya - これはあなたの意味ですか?

+1

'f = Fragment ...'の各行の後に 'break'を追加するのを忘れました。 –

答えて

5

位置によって、getItem(int位置)に適切なFragmentインスタンスを返します。 スイッチを使用すると簡単です。

+0

ありがとう、私はこれを試してみましょう。それがうまくいくかどうか教えてあげる。 – mas

+0

私は編集をしました、それはあなたが意味するものですか? – mas

+0

はい、そうです。 – lulumeya

関連する問題