我正在使用带有ViewPager的ActionBarSherlock,导航模式设置为显示我的标签。我有3个标签可以正常工作。我的问题是,如果我尝试滑动到不存在的第4个选项卡,它会崩溃我的应用程序。我不确定这是怎么回事,需要一些帮助。这是我在应用程序中的第一次尝试,欢迎任何反馈。
片段:
private ViewPager mViewPager;
private SherlockFragment mFragCodes;
private SherlockFragment mFragDeals;
private SherlockFragment mFragProgInfo;
private SherlockFragment mFragTemp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(new MainPagerAdapter(
getSupportFragmentManager()));
mViewPager.setOnPageChangeListener(this);
//mViewPager.setPageMarginDrawable(R.drawable.border);
mViewPager.setPageMargin(16);
final ActionBar actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.addTab(actionBar.newTab()
.setText(R.string.tab_codes_title)
.setTabListener(this));
actionBar.addTab(actionBar.newTab()
.setText(R.string.tab_deals_title)
.setTabListener(this));
actionBar.addTab(actionBar.newTab()
.setText(R.string.tab_program_info_title)
.setTabListener(this));
和我的pageradapter:
private class MainPagerAdapter extends FragmentPagerAdapter {
public MainPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public SherlockFragment getItem(int position) {
switch (position) {
case 0:
return (mFragCodes = new frag_codes());
case 1:
return (mFragDeals = new frag_deals());
case 2:
return (mFragProgInfo = new frag_programming());
}
//if nothing is returned
return mFragTemp = new SherlockFragment();
}
@Override
public int getCount() {
return R.string.tab_count;
}
}
我应该包括哪些其他信息?
答案 0 :(得分:1)
转到Swipey Tabs example以及ActionBarSherlock库(FragmentTabsPager)附带的samples文件夹中包含的示例,以查看选项卡适配器的工作示例。 此外,请包含其他信息,主要是来自例外的堆栈跟踪,布局以及包括声明和导入在内的完整类。
据我所知,您错过了implements
部分应该实施的ActionBar.TabListener, ViewPager.OnPageChangeListener
。
答案 1 :(得分:1)
刚刚提出:
@Override
public int getCount() {
return 3;
}