如果没有空间,操作栏将标签转换为列出导航

Ric*_*ick 7 android actionbarsherlock android-actionbar

我有一个带有徽标,标题,2个标签和搜索功能的操作栏.在手机(3.5")上一切正常.动作栏有2行.徽标标题和搜索功能出现在第一行,标签位于第二行. 在此输入图像描述

在我的平板电脑(7")上,每一行都显示在一行上.但是当我点击搜索图标时,标签将转换为列表. 标签作为列表导航

我如何在我的7"tabblet上将2行中的(sherlock)操作栏分开?或者还有其他方法可以解决这个问题吗?

fay*_*lon 5

在ActionBarSherlock中,有一个布尔值(abs__action_bar_embed_tabs),用于确定Tabs是否应嵌入ActionBar中,并且此值存储在两个文件中.

  • 在values/abs__bools.xml中.这是假的.
  • 在values-w480/abs__bools.xml中.是真的.

这意味着仅当设备的宽度大于480dp时才会嵌入Tabs.

如果您想自己控制它,您可以在自己的项目中创建值-w480,并将abs__action_bar_embed_tabs设置为false以覆盖库项目中的值.


Ric*_*ick 4

我找到了一个解决方案来分隔代码中的选项卡。

private void embeddedTabs(Object actionBar, Boolean embed_tabs) {


try {

        if (actionBar instanceof ActionBarWrapper) {
            //ICS and forward
            try {
                Field actionBarField = actionBar.getClass().getDeclaredField("mActionBar");
                actionBarField.setAccessible(true);
                actionBar = actionBarField.get(actionBar);
            } catch (Exception e) {
                Log.e("", "Error enabling embedded tabs", e);
        }
    }
    Method setHasEmbeddedTabsMethod = actionBar.getClass().getDeclaredMethod("setHasEmbeddedTabs", boolean.class);
    setHasEmbeddedTabsMethod.setAccessible(true);
    setHasEmbeddedTabsMethod.invoke(actionBar, embed_tabs);
} catch (Exception e) {
    Log.e("", "Error marking actionbar embedded", e);
}
Run Code Online (Sandbox Code Playgroud)

}

但现在我有一个新问题。选项卡没有完全填满选项卡栏。 操作栏选项卡未填充选项卡栏