1
我知道很多在ViewPager中使用片段的應用程序。我也在我的應用程序中需要它。我沒有找到任何指導,我怎麼能做到這一點排除this。這裏是我的代碼:如何正確使用ViewPager片段?
public class MainActivity extends FragmentActivity {
Vector<Fragment> fragments;
ViewPager viewPager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
viewPager = (ViewPager) findViewById(R.id.pager);
fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this, Fragment1.class.getName()));
fragments.add(Fragment.instantiate(this, Fragment2.class.getName()));
viewPager.setOffscreenPageLimit(fragments.size());
PagerAdapter pagerAdapter = new PagerAdapter(super.getSupportFragmentManager(), fragments);
viewPager.setAdapter(pagerAdapter);
viewPager.setCurrentItem(0);
}
class PagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;
public PagerAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
}
}
但是這段代碼工作不正常。有時我會在我的Fragment1中出現關於getActivity()返回null的錯誤。我從這個網站和其他關於這個錯誤讀了很多帖子,現在我知道這是不好的方法 - 使用向量來存儲片段。但我仍然不知道,如何正確使用帶碎片的ViewPager。請幫忙。
由於大約95%的展示'ViewPager'的示例應用程序是通過在'ViewPager'中使用片段來演示的,所以*特別*會讓您感到困惑? – CommonsWare
你應該重命名你的類,在Android中已經有一個PagerAdapter類... – Matthieu
並且在ViewPager中的碎片上有很多教程:http://tamsler.blogspot.com/2011/10/android-viewpager -and-fragments.html,http://thepseudocoder.wordpress.com/2011/10/05/android-page-swiping-using-viewpager/,http://alchemiasoft.wordpress.com/2012/02/15/使用片段在一個視圖Pager/... – Matthieu