我的應用程序使用android.support.v4.view.ViewPager
類。對於ViewPager中的每個頁面,我希望在那裏有一個片段,每個都有自己的佈局文件。每個片段都在其自己的文件中定義。我很難實現這一點。爲了澄清,有:Android ViewPager w /多個片段類每個w /獨立的佈局文件
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
我見過的例子只處理一個佈局文件。
這裏是我的FragmentActivity其中ViewPager舉行:
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);
}
}
}
我的主要問題是:我如何獲取適配器,MyAdapter
,認識到四個獨立的片段文件並順利頁跨越他們ViewPager?我應該怎樣修改getItem()
?
任何幫助表示讚賞。
編輯:
所以,我想建議什麼lulumeya以及與此想出了:
編輯2:是的,那些break語句固定它。它現在有效。感謝所有幫助過的人!現在我有一個很好的隔離,謝謝。
@Override
public Fragment getItem(int position) {
Fragment f = new Fragment();
switch (position) {
case 0:
f = FragmentOne.newInstance(position);
break;
case 1:
f = FragmentTwo.newInstance(position);
break;
case 2:
f = FragmentThree.newInstance(position);
break;
case 3:
f = FragmentFour.newInstance(position);
break;
}
return f;
}
該應用程序啓動,這總是一個好兆頭,但卡在佈局四。當我向右頁時,它也是佈局四,適用於所有頁面。我肯定會改變每個片段的充氣器佈局。我仍將繼續努力。 @lulumeya - 這是你的意思嗎?
你忘了在你的每個'f = Fragment ...'行之後加上'break'。 – 2012-02-05 03:34:55