3

图片

我不知道为什么操作栏和标题是两行的。请帮我在同一条线上进行。

源代码如下:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);

    mPagerAdapter = new MyPagerAdapter(getSupportFragmentManager());

    final ActionBar actionBar = getActionBar();
    actionBar.setHomeButtonEnabled(false);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(mPagerAdapter);
    mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
        @Override
        public void onPageSelected(int position) {
            actionBar.setSelectedNavigationItem(position);
        }
    });

    for (int i = 0; i < mPagerAdapter.getCount(); i++)
        actionBar.addTab(actionBar.newTab().setText(mPagerAdapter.getPageTitle(i)).setTabListener(this));
}
4

2 回答 2

0

如果你想要主 ActionBar 上的选项卡,你可以使用ActionBar.setCustomView!提供具有标题和自定义选项卡导航的自定义导航视图。

于 2013-09-14T16:43:53.440 回答
0

您标题下的行是 TAB 导航,尽管它是 ActionBar 功能,但据我了解,您认为(我同意)它不是“主要”ActionBar 的一部分。

如果您想在主 ActionBar 上进行某种导航,您可以通过在 res/menu/main.xml 上添加操作项来实现,例如使用 ID action_next 和 action_previous。如果你这样做,你可以删除

actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

然后您可以将其添加到您的活动中:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {

    case R.id.action_previous:
        mViewPager.setCurrentItem(mViewPager.getCurrentItem() - 1);
        return true;

    case R.id.action_next:
        mViewPager.setCurrentItem(mViewPager.getCurrentItem() + 1);
        return true;
    }

    return super.onOptionsItemSelected(item);
}
于 2013-09-14T16:16:51.853 回答