Actionbar Sherlock:设置和隐藏标题栏
Posted
技术标签:
【中文标题】Actionbar Sherlock:设置和隐藏标题栏【英文标题】:Actionbar Sherlock: Setting and hiding title bar 【发布时间】:2012-06-04 04:09:29 【问题描述】:我是 ActionBarSherlock 的新手,遇到两个问题:
首先,我只是希望能够设置操作栏的标题,但是当我这样调用它时它不起作用:
final ActionBar actionBar = (ActionBar) findViewById(R.id.actionBar);
actionBar.setTitle("test title");
对应的xml对象如下所示:
<com.myapp.prototype.ActionBar
android:id="@+id/actionBar2"
android:layout_
android:layout_
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 覆盖。任何建议如何使这项工作?
非常感谢。
【问题讨论】:
【参考方案1】:设置ActionBar
标题
setTitle("Title")
隐藏和显示ActionBar
getSupportActionBar().hide();
getSupportActionBar().show();
【讨论】:
谢谢,我现在可以得到想要的效果了。 不隐藏整个ActionBar就不能隐藏标题栏吗?对于请求的操作,这似乎不足以解决问题。 如果只想隐藏标题,请拨打actionBar.setDisplayShowTitleEnabled(false)
。
你能告诉我如何只隐藏标题栏,而不是完整的操作栏,因为我在底部拆分了操作项【参考方案2】:
您似乎混淆了两种不同的 ActionBar 实现。 ActionBarSherlock 是 Google 提供的兼容性库的扩展。 ActionBarSherlock 使用的方法几乎与 Android 3.0+ 中的原生 ActionBar 相同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 演示代码,它正在运行。干杯。 没问题。很高兴我能帮上忙。【参考方案3】:你需要导入com.actionbarsherlock.view.Window,让它偷偷使用这个方法的长版。
【讨论】:
以上是关于Actionbar Sherlock:设置和隐藏标题栏的主要内容,如果未能解决你的问题,请参考以下文章
Android - Sherlock ActionBar 长按图标菜单
为啥actionbar sherlock的横向高度会发生变化?
为啥我在使用 ActionBar Sherlock 和旧版 android 版本时在 onCreate() 处收到错误? [关闭]