我在更改主要活动的名称时遇到问题。我想删除它。作为第一种方法,我使用了this.getActionBar().setDisplayShowTitleEnabled(false);
。它有效,但在MainActivity开始之前title
显示然后消失。这很烦人,所以我试着编辑Manifest.xml
但是出现了一个有趣的问题。如果我将android:label=""
设置为activity
属性应用程序名称消失!怎么会发生这种情况?我为android:label
代码设置了application
,但是应用不会注意这一点,并从android:label
代码中获取activity
值。
我该如何解决?
谢谢你的阅读。
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:theme="@style/Theme.Example"
android:label="@string/app_name"
android:logo="@drawable/bobincut">
<activity
android:label=""
android:name="com.example.bakumovies.MainActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
答案 0 :(得分:1)
您可以通过两种方式实现这一目标:
最简单的一个是在你的活动中添加onCreate()这一行:
requestWindowFeature(Window.FEATURE_NO_TITLE);
还有另一种解决方案:
将此主题添加到styles.xml:
<style name="NoTitleTheme" parent="@style/Theme.Example">
<item name="android:windowNoTitle">true</item>
</style>
然后,在你的活动中设置这个主题(注意我在这里添加的android:theme标签):
<activity
android:label=""
android:theme="@style/NoTitleTheme"
android:name="com.example.bakumovies.MainActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
答案 1 :(得分:1)
你在活动中尝试过这个吗?
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
答案 2 :(得分:1)
创建一个继承自NoTitle
样式的新样式:
<style name="Theme.Splash" parent="@android:style/Theme.NoTitleBar.Fullscreen">
<item name="android:windowBackground">@drawable/my_splash_logo</item>
</style>
创建一个适用于样式的新SplashActivity类:
<activity
android:name="SplashActivity"
android:theme="@style/Theme.Splash"
android:label="@string/app_name"
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>
在您的SplashActivity中,启动真正的HomeActivity:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// possibly use CLEAR_TOP flag here
startActivity(new Intent(HomeActivity.class));
}
public void onResume() {
super.onResume();
Finish();
}
这会在应用开始时抑制标签,应用名称将显示在启动器和最近的应用中,由于删除了ActionBar
,您将无法获得空引用。我认为这符合您的所有标准。