其他分享
首页 > 其他分享> > android – 如何为启动器而不是活动标题设置不同的标签?

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

作者:互联网

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

我想给我的应用程序启动器图标(在开始屏幕上显示的图标!)一个不同的,更短的标题.似乎发射器从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的原始引用更改为其他更短的字符串资源.

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

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

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

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

解决方法:

显然< intent-filter>可以有一个label属性.如果不存在,则标签继承自父组件(活动或应用程序).因此,使用此功能,您可以为启动器图标设置标签,同时仍然拥有带有自己标题的活动.

请注意,虽然这适用于模拟器,但它可能无法在实际设备上运行,因为它取决于所使用的启动器实现.

http://developer.android.com/guide/topics/manifest/intent-filter-element.html

<activity
  android:name=".ui.HomeActivity"
  android:label="@string/title_home_activity"
  android:icon="@drawable/icon">
  <intent-filter android:label="@string/app_name">
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
</activity>

Side Note: <intent-filter> can also have an icon attribute, but
inexplicably it does not override the icon specified in the
Activity. This may be important to you if you plan to use the native
ActionBar in SDK 11+, which uses Icon and Logo specified on the
Activity.

添加信息:标签是从Activity而不是Application继承的.

 <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"       
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

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

在这种情况下,如果我们没有像上面提到的那样放置标签,app_long_name将显示启动器图标.

标签:titlebar,launcher,android,android-manifest,label
来源: https://codeday.me/bug/20190915/1805535.html