更改主要活动的标题

时间:2013-04-03 16:01:10

标签: android android-layout android-actionbar android-manifest

我在更改主要活动的名称时遇到问题。我想删除它。作为第一种方法,我使用了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>

3 个答案:

答案 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,您将无法获得空引用。我认为这符合您的所有标准。