猿问
下载APP

如何为启动器而不是活动标题设置不同的标签?

如何为启动器而不是活动标题设置不同的标签?

之前已经问过这个问题 - 但根本没有令人满意的答案!所以我再试一次。

我想给我的应用程序启动器图标(在开始屏幕上显示的图标!)一个不同的,更短的标题。似乎发射器从mainfest部分获取了关于主要活动标签的标签,如下所示:

<activity android:name="MainActivity" android:label="@string/app_short_name"><intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" /></intent-filter>


我已将此应用程序名称@ string / app_name的原始引用更改为其他更短的字符串资源。

但是 - 大但是:这当然也改变了这个活动的默认标题!而且我不希望这种情况发生,有足够的空间来申请长名称!onCreate使用该setTitle(int)方法再次设置长标题也没有用,因为短名称将在短时间内对用户可见,但需要足够长的时间才能注意到!

并且 - 请不要通过引用自定义标题栏来回答我的问题...我不想走那么长的路,只是因为一个愚蠢的字符串标题!绘制一个自定义标题栏以获得如此小的效果是一件痛苦的事!

没有简单的方法只是给启动器一个不同的字符串来显示?谢谢你的回答!

编辑:拥有自定义标题栏的另一个原因是它看起来不像默认的标题栏,我必须明确地做一些事情,使它在每个设备上看起来都很相似!如果毕竟我不想要一个不同的外观,这不可能是一个解决方案!


慕尼黑的夜晚无繁华
浏览 48回答 3
3回答

回首忆惘然

显然<intent-filter>可以有一个label属性。如果不存在,则标签继承自父组件(活动或应用程序)。因此,使用此功能,您可以为启动器图标设置标签,同时仍然拥有带有自己标题的活动。请注意,虽然这适用于模拟器,但它可能无法在实际设备上运行,因为它取决于所使用的启动器实现。http://developer.android.com/guide/topics/manifest/intent-filter-element.html<activity &nbsp;&nbsp;android:name=".ui.HomeActivity" &nbsp;&nbsp;android:label="@string/title_home_activity" &nbsp;&nbsp;android:icon="@drawable/icon"> &nbsp;&nbsp;<intent-filter&nbsp;android:label="@string/app_name"> &nbsp;&nbsp;&nbsp;&nbsp;<action&nbsp;android:name="android.intent.action.MAIN"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<category&nbsp;android:name="android.intent.category.LAUNCHER"&nbsp;/> &nbsp;&nbsp;</intent-filter></activity>侧注意:<意图滤波器>也可以具有图标属性,但它莫名其妙地并没有覆盖在活动中指定的图标。如果您计划使用SDK 11+中的本机ActionBar,它可能对您很重要,它使用活动上指定的Icon和Logo。添加信息:标签是从Activity而不是Application继承的。&nbsp;<application &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:allowBackup="true" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:icon="@drawable/ic_launcher"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:label="@string/app_name" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:theme="@style/AppTheme"&nbsp;> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<activity &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:name=".StartActivity" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:label="@string/app_long_name"&nbsp;> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<intent-filter> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<action&nbsp;android:name="android.intent.action.MAIN"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<category&nbsp;android:name="android.intent.category.LAUNCHER"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</intent-filter> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</activity>在这种情况下,如果我们没有像上面提到的那样放置标签,app_long_name将显示启动器图标。

慕慕0277861

启动器实际上显示了声明的活动(ies)的android:label和android:icon<intent-filter> &nbsp;&nbsp;&nbsp;&nbsp;<action&nbsp;android:name="android.intent.action.MAIN"&nbsp;/> &nbsp;&nbsp;&nbsp;&nbsp;<category&nbsp;android:name="android.intent.category.LAUNCHER"&nbsp;/></intent-filter>所以申请标签是没用的。

慕瓜9086354

对于通过该方法使用Support / Appcompat工具栏的任何人setSupportActionBar(),可以在工具栏XML中设置活动标题:<android.support.v7.widget.Toolbar &nbsp;&nbsp;&nbsp;&nbsp;android:id="@+id/toolbar" &nbsp;&nbsp;&nbsp;&nbsp;app:title="@string/activity_title" &nbsp;&nbsp;&nbsp;&nbsp;.../>这将覆盖清单中设置的应用程序和活动标签。android.support.v7.widget.Toolbar
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答