android - 设置操作栏标题和副标题

标签 android android-layout android-widget

我想在编译前设置我的操作栏的标题和副标题。 我有办法做到这一点:

ActionBar ab = getActionBar();
ab.setTitle("My Title");
ab.setSubtitle("sub-title");

但我不想在运行时这样做。是否有任何 xml 文件或我可以指定这些标题的任何位置?

我正在努力实现这一目标:

enter image description here

编辑:

我希望它在 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/

相关文章:

android - FFmpeg 只显示输入文本中的数字(没有字符,只有数字)错误=13,权限被拒绝

android - 如何更改 Android 动态壁纸中对话框首选项的布局?

android - 将 PendingIntent 中的小部件的额外内容传递给 Activity

android - 无法启动服务 [服务名称] 为 null

Android - Youtube API V3 搜索不工作

java - Android:如何使用SDK访问SIM联系人表?

android - 根据焦点更改android编辑框中的文本颜色

android - ScrollView 重叠工具栏

android - 如何从另一个布局显示 TextView

android - 如何禁用android中线性布局内的所有内容?