2013-05-09 18 views
0

簡單而簡單的問題:如何爲應用程序設置標籤,但爲所有活動清空?

我使用actionBarSherlock庫,並希望只將應用程序的標籤設置爲某個字符串,但除非另行指定,否則所有活動都有空標籤。

我知道你可以查看每項活動並將其標籤設置爲「」,但是有沒有更好的解決方案?喜歡使用樣式?我試過了:

<item name="android:label"></item> 

在那裏,但它沒有做任何事情。


編輯:事實是,由於某種原因,將所有活動的標籤爲「」,實際上也改變了應用程序的標籤在某些Android版本(對GALAXY S小測試,與Android 2.3),所以它的名字也是「」。怎麼來的?這是一個錯誤?


這是一個在android或我測試過的任何啓動器上的bug。

似乎將標籤設置爲「」(或至少是主標籤)的活動將應用程序的名稱設置爲「」,因此應用程序標籤的標籤僅用於所有其活動。

回答

2

您可以通過將<item name="android:windowNoTitle">true</item>放入您的應用程序主題中來刪除整個標題欄。我不認爲你應該有一個沒有標題的標題欄(除非在運行3.0或更高版本的設備上,標題欄變成ActionBar並且具有更多功能),因爲它只會浪費寶貴的空間。

如果您在3.0+發展,以及2.3,將以下元素添加到您的主題:

<style name="AppTheme" parent="AppBaseTheme"> 
    <item name="android:actionBarStyle">@style/ActionBar</item> 
</style> 

<style name="ActionBar" parent="@android:style/Widget.ActionBar"> 
    <item name="android:displayOptions">showHome|useLogo</item> 
</style> 

編輯:

styles.xml

<resources xmlns:android="http://schemas.android.com/apk/res/android"> 

    <style name="AppBaseTheme" parent="android:Theme.Holo"> 
     <!-- Base Theme style elements --> 
    </style> 

    <style name="AppTheme" parent="AppBaseTheme"> 
     <!-- Other style elements. --> 
     <item name="android:actionBarStyle">@style/ActionBar</item> 
    </style> 

    <style name="AppThemeWithTitle" parent="AppTheme"> 
     <item name="android:actionBarStyle">@style/ActionBarWithTitle</item> 
    </style> 

    <style name="ActionBar" parent="@android:style/Widget.ActionBar"> 
     <!-- Other ActionBar style elements. --> 
     <item name="android:displayOptions">showHome|useLogo</item> 
    </style> 

    <style name="ActionBarWithTitle" parent="ActionBar"> 
     <item name="android:displayOptions">showHome|useLogo|showTitle</item> 
    </style> 

</resources> 

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.themes" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="16" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.themes.Activity1" 
      android:theme="@style/AppThemeWithTitle"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity 
      android:name="com.example.themes.Activity2" /> 
     <activity 
      android:name="com.example.themes.Activity3" /> 

    </application> 

</manifest> 

Activity1將顯示標題,但Activity2和Activity3不會。

+0

這不是我所要求的。我在動作欄上放了一些東西,比如圖標和一些動作項目。有時我需要放置文本,有時我不需要 – 2013-05-09 13:58:02

+0

創建另一個主題,稱'TitleTheme',它繼承自'AppTheme',但帶有 showTitle'。然後將其設置爲清單中相關活動的主題。這樣活動將沒有標題作爲默認值。 – 2013-05-09 14:10:01

+0

我不明白。你可以請代碼(包括清單)顯示?也許是一個樣本? – 2013-05-09 15:22:41

相關問題