如何在使用操作栏时隐藏标题栏?

时间:2012-11-23 03:36:51

标签: android android-actionbar actionbarsherlock titlebar

我正在使用ActionBarSherlock并且我正在尝试隐藏应用程序的标题栏但是每当我这样做时,我在访问NullPointerException时会得到ActionBar如何删除/隐藏标题栏?请注意,我不是指操作栏的标题。我指的是操作栏上方的标题栏。我在Android 2.3设备上运行我的应用程序。

以下是我的代码:(我的课程扩展SherlockFragmentActivity。)

super.onCreate(savedInstanceState);
setTheme(R.style.Theme_Sherlock);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
ActionBar actionbar = getSupportActionBar();
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); //I get the NullPointerException here.

//...

setContentView(R.layout.tab_navigation);

10 个答案:

答案 0 :(得分:33)

我通过添加以下代码行来隐藏标题栏:

getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setDisplayShowHomeEnabled(false);

希望这有助于:)

答案 1 :(得分:18)

隐藏所有标题栏并仅保留操作栏使用此代码:

final ActionBar actionBar = getActionBar();
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayUseLogoEnabled(false);

它对我有用

答案 2 :(得分:8)

我正在寻找答案。找到一个解决方案

actionBar = getActionBar();
actionBar.hide();

以上代码段将删除标签标题和滑块。希望它有所帮助。

答案 3 :(得分:4)

找到解决方案。如果您在AndroidManifest.xml上声明主题,则标题栏会自行消失。虽然,我不知道为什么它仅在AndroidManifest.xml上声明而不在代码上声明。

NullPointerException的原因是ActionBar与更高版本(ICS和更新版本)上的TitleBar同义。通过使用兼容性库和ActionBarSherlock,隐藏TitleBar也意味着隐藏ActionBar

以下是如何设置应用程序以使用Sherlock的主题:(您应该将其添加到应用程序的标签上)

android:theme="@style/Theme.Sherlock"

如果您知道如何在代码上隐藏标题栏,请随时修改我的答案以包含您的答案。如果有人能解释为什么它只适用于清单文件而不是代码,如果它会很好。 :)

答案 4 :(得分:1)

请参阅此答案,以语法方式显示/隐藏ActionBarSherlock中的titleBar ..

android: title bar hide

答案 5 :(得分:0)

Arci的回答并不完全正确。如果你阅读Theming documentation,你会发现:

  

主题应在整个应用程序的清单中定义,或者在每个活动的基础上定义。您还可以在调用super.onCreate(Bundle)之前在每个活动的代码中定义主题。必须对从“Sherlock”活动基类之一扩展的每个活动进行此操作,并打算使用操作栏。

换句话说,交换原始代码的前两行就足够了:

setTheme(R.style.Theme_Sherlock);
super.onCreate(savedInstanceState);
...

答案 6 :(得分:0)

我遇到了同样的问题。这些答案都不适用于我,我仍然可以看到在Actionbar加载之前显示的标题栏。

我必须在Manifest中将 Activity 主题设置为NoActionBar:

android:theme="@style/Theme.Sherlock.NoActionBar"

然后在setContentView()之前将主题设置回我的Activity:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setTheme(R.style.Theme_Custom);
    setContentView(R.layout.activity_home);
}

这仍然加载了我的自定义主题,当活动加载时我不再看到标题栏的一瞥

答案 7 :(得分:0)

如果您使用的是Xamarin。你可以在下面使用。

ActionBar.Hide();

答案 8 :(得分:-2)

试一试:

setTheme(R.style.Theme_Sherlock_NoActionBar);

答案 9 :(得分:-2)

    <activity android:name=".xxxxxActivity"
              android:theme="@style/Theme.Sherlock.NoActionBar"/>