19

我正在使用 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);
4

10 回答 10

32

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

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

希望这可以帮助 :)

于 2012-12-20T07:33:22.500 回答
19

要隐藏所有标题栏并仅保留操作栏,请使用以下代码:

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

它对我有用

于 2013-08-07T09:21:48.487 回答
8

我正在为此寻找答案。找到了一种解决方案。

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

上面的代码片段将删除标签标题和滑块。希望能帮助到你。

于 2014-01-28T05:39:21.160 回答
4

在这个上找到了解决方案。如果您在 上声明您的主题AndroidManifest.xml,标题栏将自行消失。虽然,我不明白为什么它只在声明时才有效,AndroidManifest.xml而不是在代码上。

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

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

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

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

于 2012-11-23T04:56:58.013 回答
1

see this answer to grammatically show/hide titleBar from the ActionBarSherlock ..

android: title bar hide

于 2013-08-18T17:26:09.013 回答
0

Arci 的回答并不完全正确。如果您阅读主题文档,您会发现:

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

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

setTheme(R.style.Theme_Sherlock);
super.onCreate(savedInstanceState);
...
于 2013-03-26T10:09:46.873 回答
0

我有同样的问题。这些答案都不适合我,我仍然可以看到标题栏在加载操作栏之前显示。

我必须在 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);
}

这仍然加载了我的自定义主题,并且在加载活动时我不再看到标题栏

于 2014-02-09T20:32:45.780 回答
0

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

ActionBar.Hide();
于 2014-09-23T16:53:08.297 回答
-2
    <activity android:name=".xxxxxActivity"
              android:theme="@style/Theme.Sherlock.NoActionBar"/>
于 2013-07-26T03:10:30.070 回答
-2

试试看:

setTheme(R.style.Theme_Sherlock_NoActionBar);
于 2013-05-21T06:47:27.993 回答