我想在编译前设置我的操作栏的标题和副标题。 我有办法做到这一点:
ActionBar ab = getActionBar();
ab.setTitle("My Title");
ab.setSubtitle("sub-title");
但我不想在运行时这样做。是否有任何 xml 文件或我可以指定这些标题的任何位置?
我正在努力实现这一目标:
编辑:
我希望它在 xml 中的原因是我希望我的应用程序在 API 级别 8 中得到支持。方法 getActionBar() 至少在级别 11 上得到支持。
最佳答案
您可以为这两个版本编写代码:
/**
* Sets the Action Bar for new Android versions.
*/
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void actionBarSetup() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
ActionBar ab = getActionBar();
ab.setTitle("My Title");
ab.setSubtitle("sub-title");
}
}
然后在onCreate()
中调用actionBarSetup()
。 if
仅在新的 Android 版本上运行代码,而 @TargetApi
允许代码编译。因此,它对新旧 API 版本都是安全的。
或者,您也可以使用 ActionBarSherlock (请参阅编辑),以便您可以在所有版本上使用 ActionBar。您将不得不进行一些更改,例如使您的 Activity 扩展 SherlockActivity
并调用 getSupportActionBar()
,但是,这是一个非常好的全局解决方案。
编辑
请注意,最初编写此答案时,ActionBarSherlock
已被弃用,它是首选的兼容性解决方案。
如今,Google's appcompat-v7
library提供相同的功能,但由 Google 支持(并积极更新)。想要实现 ActionBar
的 Activity 必须:
- 扩展
AppCompatActivity
- 使用
Theme.AppCompat
衍生工具
要使用此库获取 ActionBar
实例,请使用恰当命名的 getSupportActionBar()
方法。
关于android - 设置操作栏标题和副标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14297178/