ActionBar选项卡使用自定义ActionBar导航查看奇怪的行为

时间:2012-12-04 12:06:31

标签: android android-actionbar actionbarsherlock android-tabs ui-patterns

我有一个奇怪的行为,动作ActionBar标签显示在ActionBar上方。 当我为ActionBar设置自定义视图时,就会发生这种情况。我正在使用Roman Nurik的示例实现Done-Discard模式here

由于在setDisplayOptions()

中屏蔽了ActionBar.DISPLAY_SHOW_HOME,因此发生了这种情况
final ActionBar actionBar = getActionBar();
    actionBar.setDisplayOptions(
            ActionBar.DISPLAY_SHOW_CUSTOM,
            ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME
                    | ActionBar.DISPLAY_SHOW_TITLE);
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    actionBar.setCustomView(customActionBarView, new ActionBar.LayoutParams(
            ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.MATCH_PARENT));

屏幕看起来像这样: enter image description here

但是当我没有屏蔽ActionBar.DISPLAY_SHOW_HOME时,它工作正常但显示了App徽标。像这样。

enter image description here

这似乎是一个错误。请建议修复。我不希望显示徽标。

2 个答案:

答案 0 :(得分:2)

此处的解决方案:

ActionBarSherlock - Tabs appearing ABOVE actionbar with custom view

在这里:https://github.com/JakeWharton/ActionBarSherlock/issues/327

这对我来说似乎有些惹恼,但这是解决方法: 在onCreate中添加这段代码并隐藏主页图标。现在,ActionBar和Tabs按预期工作。

请记住不要在ActionBar.setDisplayOptions()中禁用/屏蔽DISPLAY_HOME_HOME。如果屏蔽/禁用它,这将不起作用。

View homeIcon = findViewById(android.R.id.home);
        ((View) homeIcon.getParent()).setVisibility(View.GONE);

答案 1 :(得分:1)

首先将actionbar的“DisplayShowHomeEnabled”属性设置为“true”:

actionBar.setDisplayShowHomeEnabled(真);

然后:

View homeIcon = findViewById(android.R.id.home);
    ((View) homeIcon.getParent()).setVisibility(View.GONE);
    ((View) homeIcon).setVisibility(View.GONE);

我希望它有所帮助:)