设置操作栏标题和副标题
我想在编译时间之前设置我的操作栏的标题和小标题。 我有办法做到这一点:
ActionBar ab = getActionBar(); ab.setTitle("My Title"); ab.setSubtitle("sub-title");
但是我不想在运行时做这件事。 有没有任何XML文件或任何我可以指定这些标题的位置?
我正在努力实现这一点:
编辑:
我希望在xml中使用它的原因是我希望在API级别8支持我的应用程序。至less在级别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"); } }
然后在onCreate()
调用onCreate()
。 if
仅在新的Android版本上运行代码, @TargetApi
允许代码进行编译。 因此,它使旧版和新版API都可以安全使用。
或者,您也可以使用ActionBarSherlock ( 请参阅编辑 ),以便您可以在所有版本上使用ActionBar 。 你将不得不做一些改变,比如让你的Activities扩展SherlockActivity
并调用getSupportActionBar()
,然而,这是一个非常好的全局解决scheme。
编辑
请注意,当最初编写此答案时, ActionBarSherlock
(此后不再使用 )是兼容性解决scheme。
目前, Google的appcompat-v7
库提供了相同的function,但是被Google支持(并且主动更新)。 想要实现一个ActionBar
活动必须:
- 扩展
AppCompatActivity
- 使用
Theme.AppCompat
生物
为了得到一个使用这个库的ActionBar
实例,使用了恰当命名的getSupportActionBar()
方法。
操作栏的标题可以在AndroidManifest中,在这里:
<activity . . . android:label="string resource" . . . </activity>
android:label活动的用户可读标签。 当活动必须呈现给用户时,标签显示在屏幕上。 它通常与活动图标一起显示。 如果未设置此属性,则将使用为应用程序整体设置的标签(请参阅元素的标签属性)。 活动的标签 – 无论是在这里还是由元素设置 – 也是所有活动意图filter的默认标签(请参阅元素的标签属性)。 应将该标签设置为对string资源的引用,以便可以像用户界面中的其他string一样进行本地化。 但是,为了方便开发应用程序,也可以将其设置为原始string。
试试这个:
android.support.v7.app.ActionBar ab = getSupportActionBar(); ab.setTitle("This is Title"); ab.setSubtitle("This is Subtitle");
还有另外一个选项,从Support Library V7中没有人评论过,是由ActionBarSupport
实现的,这个ActionBar
从Android 2.2到ActionBar
是兼容的。
如果你改变你的ActionBar
你可以在所有Android版本上使用getSupportActionBar().setTitle("")
。
不! 你必须在运行时做到这一点。
如果您想使应用向后兼容,那么只需检查设备API级别即可。 如果它高于11,那么你可以拨动ActionBar并设置字幕。
if(Integer.valueOf(android.os.Build.VERSION.SDK) >= 11){ //set actionbar title }
<activity android:name=".yourActivity" android:label="@string/yourText" />
把这段代码放到你的android清单文件中,它应该把action bar的标题设置为你想要的!
尝试这个:
在strings.xml中添加你的标题和副标题…
ActionBar ab = getActionBar(); ab.setTitle(getResources().getString(R.string.myTitle)); ab.setSubtitle(getResources().getString(R.string.mySubTitle));
对于活动,您可以使用这种方法在清单中指定副标题和标题。
performance:
<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); }
这样你只需要指定标题string一次,你就可以指定副标题。
您可以使用AndroidManifest.xml
在操作栏中设置标题。 为activity
添加标签
<activity android:name=".YourActivity" android:label="Your Title" />
尝试这个
只要去你的清单文件。 而且您已经为清单文件中的每个活动定义了标签。
<activity android:name=".Search_Video" android:label="@string/app_name" android:screenOrientation="portrait"> </activity>
这里改变
机器人:标签= “@string/ your_title”
这在Kotlin中是微不足道的
supportActionBar?.title = getString(R.string.coolTitle)