我有一个奇怪的行为,动作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));
屏幕看起来像这样:
但是当我没有屏蔽ActionBar.DISPLAY_SHOW_HOME时,它工作正常但显示了App徽标。像这样。
这似乎是一个错误。请建议修复。我不希望显示徽标。
答案 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);
我希望它有所帮助:)