android actionbar位于xlarge屏幕的标签下方

时间:2014-10-26 10:55:03

标签: android android-layout android-activity android-actionbar

在我的应用程序中,在其中一个活动中,我有2个选项卡显示不同的内容,问题是当我将其加载到我的普通屏幕设备中时大屏幕设备它很好,标签位于操作栏下方,但是当我在xlarge屏幕设备中加载它时,标签会移动到操作栏的顶部,这是我处理操作栏的方式:

    ActionBar ab = getActionBar();
    ab.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
    ab.setCustomView(R.layout.action_bar);
    ab.setDisplayShowHomeEnabled(false);
    ab.setDisplayShowTitleEnabled(false);

我也用过:

    ab.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

但结果在xlarge屏幕设备中是相同的。任何想法为什么会发生这种情况以及如何解决它?

PS:我知道在Android 5.0中不推荐使用ActionBar,目前替换动作栏不是我的选择。稍后我将不得不更换它,但此刻我必须解决这个问题。

提前致谢。

2 个答案:

答案 0 :(得分:1)

隐藏Home项目时,标签会显示在顶部。这是known issue,但Google将其标记为"按预期工作"。您可以在bug report中找到解决此问题的方法。 另外,请查看this question

答案 1 :(得分:1)

按以下顺序尝试声明ActionBar,它对我有用,我希望它适合你

 actionBar = getActionBar();
 actionBar.setDisplayShowHomeEnabled(true);
 actionBar.setDisplayHomeAsUpEnabled(false);
 actionBar.setHomeButtonEnabled(false); 

 View homeIcon = findViewById(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ?  android.R.id.home : R.id.abs__home);
    ((View) homeIcon.getParent()).setVisibility(View.GONE);
    ((View) homeIcon).setVisibility(View.GONE);

 actionBar.setDisplayShowTitleEnabled(false);

 actionBar.setCustomView(R.layout.action_bar);
 actionBar.setDisplayShowCustomEnabled(true);