如何在Android中自定义ActionBar标题

时间:2014-01-03 11:53:38

标签: android android-actionbar android-titlebar

我有以下代码:

viewPager = (ViewPager) findViewById(R.id.pager);
actionBar = getActionBar();
mAdapter = new TabPagerAdapter(getSupportFragmentManager(), myAccount);

viewPager.setAdapter(mAdapter);
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
actionBar.setCustomView(R.layout.actionbar);
actionBar.setHomeButtonEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

// ADD TABS
for (String tab_name : tabs) {
    actionBar.addTab(actionBar.newTab().setText(tab_name)
            .setTabListener(this));
}

这是上述代码的结果:

Android actionbar title

我想做的是将我的标题放在我的标签上方,而不是如图所示。我该怎么做?

*编辑1 *

我可以使用以下代码(不使用自定义布局)实现此目的

viewPager = (ViewPager) findViewById(R.id.pager);
actionBar = getActionBar();
mAdapter = new TabPagerAdapter(getSupportFragmentManager(), myAccount);

viewPager.setAdapter(mAdapter);
actionBar.setHomeButtonEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

// ADD TABS
for (String tab_name : tabs) {
    actionBar.addTab(actionBar.newTab().setText(tab_name)
            .setTabListener(this));
}

以下是截图:

Without using custom layout

我正在努力实现这一目标,但使用自定义布局

1 个答案:

答案 0 :(得分:0)

private String[] tabs = { "English", "Tamil", "Hindi" };

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

        viewPager = (ViewPager) findViewById(R.id.pager);
        actionBar = getActionBar();
        mAdapter = new TabsPagerAdapter(getSupportFragmentManager());

        viewPager.setAdapter(mAdapter);
        actionBar.setHomeButtonEnabled(false);
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

        for (String tab_name : tabs) {
            actionBar.addTab(actionBar.newTab().setText(tab_name)
                    .setTabListener(this));
        }

他们将字符串数组传递给标签,例如泰米尔语,英语,印地语。 把它改成你想要的水。