0

我在更改主要活動名稱時遇到問題。我想刪除它。作爲第一種方法,我使用this.getActionBar().setDisplayShowTitleEnabled(false);。它的工作原理,但MainActivity啓動之前title出現,然後消失。這很煩人,所以我試圖編輯Manifest.xml,但出現了一個有趣的問題。如果我將android:label=""設置爲activity屬性應用程序名稱消失!這怎麼可能發生?我爲application標籤設置了android:label,但一個應用沒有注意到該標籤,並且從activity標籤取android:label的值。 我該如何解決它? 謝謝您的閱讀。更改主要活動的標題

<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

那麼你認爲會發生什麼? –

+0

沒有得到你的意思。對不起,英文爲 –

回答

1

您可以通過兩種方式來完成它:

最簡單的一種是在活動的onCreate加()這一行:

requestWindowFeature(Window.FEATURE_NO_TITLE); 

還有另外一個解決方案:

將此主題添加到styles.xml中:

<style name="NoTitleTheme" parent="@style/Theme.Example"> 
    <item name="android:windowNoTitle">true</item> 
</style> 

然後,將在您的活動這一主題(注意安卓主題標籤我這裏補充):

<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> 
+0

,在添加這個' true'後,我的'主題'應用程序崩潰了'NullPointer Exception' :( –

+0

我發現了爲什麼會引發'NullPointer異常'。 –

+2

對不起,我以爲你也想隱藏操作欄,所以你看到的標題是預覽窗口的標題,你可以禁用它,我建議你閱讀以下文章,闡明預覽窗口的工作方式:http://cyrilmottier.com/2013/01/23/android-app-launching-made-gorgeous/ 如果您不想閱讀整篇文章,添加' true'對你的主題。 –

1

有你在活動試過這樣:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
+0

這個方法也會導致延遲,因爲它是在'onCreate'之後執行的。此解決方案不能解決我的問題:( –

1

建立一個新的風格,

<style name="Theme.Splash" parent="@android:style/Theme.NoTitleBar.Fullscreen"> 
    <item name="android:windowBackground">@drawable/my_splash_logo</item> 
</style> 

作出這樣的應用樣式新SplashActivity類:

NoTitle樣式繼承
<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,所以得到null參考。我認爲這符合你的所有標準。

+0

我試過了,它不能如預期的那樣工作。如果您設置了'android:label =「」'並啓動應用程序,它將不會出現在MultiTasking欄中。 –

+0

我已更新我的答案以使用「飛濺」活動技巧。讓我知道這是否適合你。 –