【问题标题】:ActionBar Sherlock Tabs on the bottom底部的 ActionBar Sherlock 选项卡
【发布时间】:2012-12-17 12:24:03
【问题描述】:

有可能吗?

我可以使用片段,我可以将标签放在底部,但我不能使用 ActionBar Sherlock。有人知道怎么做吗?

我正在使用类似这样的东西来使用标签(它们在底部):

tHost = (TabHost) findViewById(R.id.tabhost2);

    tHost.setup();

    tM = new TabManager(this, tHost, android.R.id.tabcontent);

    tM.addTab(tHost.newTabSpec("tabCREATE").setIndicator("Criar"),
            Criar.CountingFragment.class, null);

    tM.addTab(tHost.newTabSpec("tabCREATE2").setIndicator("Criar2"),
            Criar.CountingFragment.class, null);

如何将其更改为 ActionBar 选项卡?

我通常将它用于操作栏:

getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    for (int i = 1; i <= 3; i++) {
        ActionBar.Tab tab = getSupportActionBar().newTab();
        if (i == 1) {
            tab.setText("a");
        }
        else if(i == 2)
            tab.setText("b");
        else if (i == 3)
            tab.setText("c");
        tab.setTabListener(this);
        getSupportActionBar().addTab(tab);

这很好,但我真的需要把它放在底部。是否可以在第二种方法上设置 Tabhost?如何?我相信它会解决我所有的问题。

【问题讨论】:

  • 我想这就是你要找的东西:stackoverflow.com/a/8468675/33203
  • 没有。我想要做的是将 ActionBarSherlock 的 Tabs 放在底部。
  • 您无法使用操作栏执行此操作。如果您真的觉得有必要违反操作系统的设计准则,您可以使用LinearLayouts 和android:layout_weight 重新创建操作栏的外观和感觉

标签: android tabs actionbarsherlock


【解决方案1】:

我认为你不能用 ActionBar 做到这一点。 android:uiOptions="splitActionBarWhenNarrow" 只是在屏幕底部为 ActionBar 添加了额外的空间,但它只适用于 MenuItems 而不是标签。 ActionBar design guidelines 总是在顶部有标签。看看http://www.androiduipatterns.com/2011/07/tabs-top-or-bottom.html 哪里是一个很好的讨论标签应该放在哪里。

【讨论】:

    【解决方案2】:

    在您的清单中添加此代码android:uiOptions="splitActionBarWhenNarrow"

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
              android:uiOptions="splitActionBarWhenNarrow"
              android:versionCode="431"
              android:versionName="4.3.1"
              package="com.actionbarsherlock.sample.demos">
    

    并在您的活动中再次添加此代码

    <activity android:label="@string/activity_name" 
              android:uiOptions="splitActionBarWhenNarrow"
              android:name=".SampleList" android:theme="@style/Theme.Sherlock">
    

    我在样品上试了试,效果很好

    【讨论】: