我想在编译之前设置操作栏的标题和副标题。
我有办法这样做:
ActionBar ab = getActionBar();
ab.setTitle("My Title");
ab.setSubtitle("sub-title");
但我不想在运行时这样做。是否有任何 xml 文件或任何位置可以指定这些标题?
我正在努力实现这一目标:
Edit:
我希望它在 xml 中的原因是我希望我的应用程序在 API 级别 8 中得到支持。并且至少在级别 11 上支持 getActionBar() 方法。
您可以执行以下操作来为两个版本编写代码:
/**
* 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");
}
}
然后打电话actionBarSetup()
in onCreate()
. The if
仅在新的 Android 版本上运行该代码@TargetApi
允许代码编译。因此,它对于新旧 API 版本都是安全的。
或者,您也可以使用动作栏夏洛克 http://actionbarsherlock.com/ (see edit)这样您就可以在所有版本上拥有 ActionBar。您将必须进行一些更改,例如延长您的活动SherlockActivity
并打电话getSupportActionBar()
然而,它是一个非常好的全局解决方案。
Edit
请注意,最初写此答案时,ActionBarSherlock
,此后一直是已弃用,是首选的兼容性解决方案。
如今,谷歌的appcompat-v7 library https://developer.android.com/tools/support-library/features.html提供相同的功能,但由 Google 支持(并积极更新)。想要实施的活动ActionBar https://developer.android.com/reference/android/support/v7/app/ActionBar.html must:
- extend
AppCompatActivity
- use a
Theme.AppCompat
衍生物
为了得到一个ActionBar
使用这个库的实例,名副其实getSupportActionBar()
使用方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)