设置操作栏标题和副标题(Setting Action Bar title and subtitle)

2019-07-18 03:52发布

我想编译时之前设置我的动作条的标题和subtitile。 我有一个办法做到这一点是这样的:

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

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

我试图做到这一点:

编辑:

为什么我想在XML中的原因是,我想在API层面8.支持我的应用程序和方法getActionBar()支持至少11级。

Answer 1:

你可以做这样的事情对于两个版本的代码:

/**
 * 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()onCreate()if只运行在新的Android版本的代码和@TargetApi允许代码进行编译。 因此,它使安全的新老版本的API。

另外,您也可以使用ActionBarSherlock ( 见编辑 ),这样你就可以在所有版本的动作条。 你将不得不做一些变化,如让你的活动扩展SherlockActivity并调用getSupportActionBar()但是,它是一个很好的全球性解决方案。

编辑

需要注意的是,当这个答案最初写, ActionBarSherlock ,这已经被弃用 ,是去到兼容的解决方案。

如今, 谷歌的appcompat-v7库提供相同的功能,但由谷歌支持(和动态更新)。 活动希望实现一个ActionBar必须:

  • 延长AppCompatActivity
  • 使用Theme.AppCompat衍生物

为了得到一个ActionBar使用这个库情况下,恰当地命名getSupportActionBar()时使用的方法。



Answer 2:

在动作条的标题可能在AndroidManifest,在这里:

<activity 
    . . .
          android:label="string resource" 
    . . .
</activity>

机器人:标记为活动的用户可读的标签。 该标签显示在屏幕上时,活动必须表示给用户。 它常与活动图标一起显示。 如果没有设置该属性,标签作为一个整体来代替应用程序(见元素的标签属性)设置。 活动的标签 - 无论在这里还是被元素设置 - 也是所有活动的意图过滤器的默认标签(见元素的标签属性)。 标签应设置为一个字符串资源的引用,以便它可以被本地化一样在用户界面的其他字符串。 然而,作为一种方便,而你开发的应用程序,它也可以被设置为一个原始字符串。



Answer 3:

试试这个:

android.support.v7.app.ActionBar ab = getSupportActionBar();
ab.setTitle("This is Title");
ab.setSubtitle("This is Subtitle");


Answer 4:

有被谷歌实施的另一种选择,没有人评论说,从支持库V7 ActionBarSupport ,这是兼容的ActionBar从Android 2.2的最后一个。
如果你改变你的ActionBar这一点,你可以做getSupportActionBar().setTitle("")对所有的Android版本。



Answer 5:

不! 你必须在运行时做到这一点。

如果你想使你的应用程序向后兼容,然后简单地检查设备API级别。 如果高于11,那么你可以用动作条小提琴和设置字幕。

if(Integer.valueOf(android.os.Build.VERSION.SDK) >= 11){
    //set actionbar title
}


Answer 6:

    <activity android:name=".yourActivity" android:label="@string/yourText" />

将这个代码到你的Android清单文件,它应该设置操作栏永远你想要的称号!



Answer 7:

试试这个:

在strings.xml中添加标题和副标题...

ActionBar ab = getActionBar();
ab.setTitle(getResources().getString(R.string.myTitle));
ab.setSubtitle(getResources().getString(R.string.mySubTitle));


Answer 8:

试试这个

只要到您的清单文件。 和你有定义清单档案中的每个活动的标签。

<activity
        android:name=".Search_Video"
        android:label="@string/app_name"
        android:screenOrientation="portrait">
    </activity>

这里的变化

机器人:标签= “@字符串/ your_title”



Answer 9:

对于一个活动,你可以用这种方式来指定字幕,随标题,在清单。

表现:

<activity
    android:name=".MyActivity"
    android:label="@string/my_title"
    android:description="@string/my_subtitle">
</activity>

活动:

try {
    ActivityInfo activityInfo = getPackageManager().getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);
    //String title = activityInfo.loadLabel(getPackageManager()).toString();
    int descriptionResId = activityInfo.descriptionRes;
    if (descriptionResId != 0) {
        toolbar.setSubtitle(Utilities.fromHtml(getString(descriptionResId)));
    }
}
catch(Exception e) {
    Log.e(LOG_TAG, "Could not get description/subtitle from manifest", e);
}

这样,您只需要指定一次标题字符串,你可以指定它旁边的字幕权。



Answer 10:

您可以设置使用动作栏中的标题AndroidManifest.xml 。 添加标签的activity

<activity
            android:name=".YourActivity"
            android:label="Your Title" />


Answer 11:

这是很普通的班轮在科特林

supportActionBar?.title = getString(R.string.coolTitle)



文章来源: Setting Action Bar title and subtitle