ActionBar Sherlock:设置和隐藏标题栏

10

我刚开始使用ActionBarSherlock,遇到了两个问题:

首先,我只想设置操作栏的标题,但当我像这样调用时它不起作用:

final ActionBar actionBar = (ActionBar) findViewById(R.id.actionBar);
actionBar.setTitle("test title");

对应的XML对象看起来像这样:

<com.myapp.prototype.ActionBar
    android:id="@+id/actionBar2"
    android:layout_width="fill_parent"
    android:layout_height="45dip" 
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" />
(这是基于github的示例模型:https://github.com/johannilsson/android-actionbar/blob/master/actionbarexample/src/com/markupartist/android/actionbar/example/HomeActivity.java)。在网上的其他地方,我看到有提到getSupportActionBar(),但我不清楚应该在哪里调用。

其次,在另一个地方,我只想完全隐藏Activity的标题栏。我试图通过调用以下方式实现:

    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setDisplayShowHomeEnabled(false);

但是我甚至不能把这个编译通过。我得到的错误信息是:

"The method setDisplayShowTitleEnabled(boolean) is undefined for the type
 ActionBar."

我认为在这两种情况下,Actionbar Sherlock的覆盖可能涉及到了问题。有什么建议可以使其正常工作吗?

非常感谢。

3个回答

40

设置ActionBar标题

setTitle("Title")

隐藏和显示ActionBar

getSupportActionBar().hide();
getSupportActionBar().show();

谢谢,我现在能够获得所需的效果了。 - gcl1
有没有可能隐藏标题栏而不隐藏整个ActionBar?这似乎不是所请求的操作的足够解决方案。 - James Cameron
如果您只想隐藏标题,请调用 actionBar.setDisplayShowTitleEnabled(false) - Matthias Robbers
你能告诉我如何隐藏标题栏,而不是完全隐藏操作栏吗?因为我在底部拆分了操作项。 - Rizwan Sohaib

2
您似乎混淆了两种不同的ActionBar实现。ActionBarSherlock是Google提供的兼容库的扩展。与Android 3.0+中的原生ActionBar几乎相同的方法用于ActionBarSherlock。http://actionbarsherlock.com/ 提供的Github链接(和您正在使用的代码)是一个自定义的操作栏实现。https://github.com/johannilsson/android-actionbar
我建议您使用ActionBar sherlock,并遵循此处的使用指南http://actionbarsherlock.com/usage.html 这里还有一个ActionBarSherlock入门视频:http://www.youtube.com/watch?feature=player_embedded&v=4GJ6yY1lNNY

谢谢。不知怎么回事,我没有意识到johannilsson的实现不是基于ABS的。我已经回到ABS演示代码,现在它能正常工作了。干杯。 - gcl1

0
你需要导入com.actionbarsherlock.view.Window,这样它就会偷偷地使用这个方法的长版本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接