Android 应用的显示名称,在 AndroidManifest.xml
中进行修改。
AndroidManifest.xml1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".LoginActivity" android:label="@string/title_activity_login"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity ... </activity> </application>
|
我们会很显然的认为,修改最外层的 android:label
即可,也就是修改 @string/app_name
的值。但经过实践会发现并不是这样的,Launcher 里显示的竟然是 @string/title_activity_login
,也就是 Login Activity 的标题。
实际上,在 Launcher 中显示的应用名称,是被标记为首页面的 Activity 的标题。也就是被标记为:
AndroidManifest.xml1 2 3 4
| <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>
|
的 Activity。
那 application 标签的 android:label 属性是用来做什么的?它的确如它的名字一样,代表了应用的名称。在应用程序管理器中看到的名称,就是这个名称。但是这个名称并不是 Launcher 用的名称,所以用户在手机的桌面(应用程序列表)中,看到的不是这个名称。
这着实让人感到不可理解。自认为还是 iOS 的处理方式更科学--在 info.plist 文件中有一个属性 Bundle display name,在这里面存储了应用的显示名称,这是一个应用全局的设置。
那如果首页面 Activity 的标题,跟应用的显示名称不能保持一致,怎么办?那就在 AndroidManifest.xml 里,把首页面 Activity 的 label 设置成应用名称,然后在首页面 Activity 的 onCreate 里,用 setTitle 方法再把标题改掉就好了,如:
1 2 3 4 5 6
| protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTitle("登录"); setContentView(R.layout.activity_login); ... }
|