2012-07-11 2 views
7

Ho cercato SO ma non ho trovato domande simili perché non sono sicuro di come eliminarlo in una frase. Sto usando ActionBarSherlock, con un logo invece dell'icona di avvio (cioè l'icona 72x72) con il testo nell'angolo superiore dell'attività.Nascondere l'icona di avvio dell'applicazione nella barra del titolo quando l'attività inizia in Android

Quando l'attività viene caricata per la prima volta, per una frazione di secondo. Vedo l'icona e l'etichetta del launcher definite nel manifest (come sotto), prima che la barra delle azioni appaia con il logo. Questa attività domestica è molto semplice, quindi non sta facendo alcun carico aggiuntivo che potrebbe causare un ritardo.

<application 
    android:hardwareAccelerated="true" 
    android:icon="@drawable/launcher_icon" 
    android:label="@string/app_name" 
    android:screenOrientation="portrait" > 

    <activity 
     android:name=".SplashScreenActivity" 
     android:label="@string/app_name" 
     android:logo="@drawable/ab_logo" 
     android:theme="@android:style/Theme.Light.NoTitleBar" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity 
     android:name=".HomeActivity" 
     android:label="@string/homeitle" 
     android:logo="@drawable/ab_logo" 
     android:theme="@style/MyTheme" > 
    </activity> 

</application> 

posso rendere il testo "scompaiono" di styling per essere lo stesso colore dello sfondo, ma non posso trovare un modo per rimuovere/nascondere l'icona di avvio dall'attività.

Ho impostato un'attività splashscreen (come in manifest sopra), che carica appena la mia attività di casa in cui si verifica il problema. Questo aiuta, ma a volte il problema si verifica ancora durante il caricamento dell'attività.

public class SplashScreenActivity extends Activity 
{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
    } 

    @Override 
    public void onResume() 
    { 
     super.onResume(); 
     Intent i = new Intent(getBaseContext(), HomeActivity.class); 
     startActivity(i); 
     finish(); 
    } 
} 

Qualcuno sa di un modo per nascondere l'etichetta titolo lanciatore icona &, in modo che non si presenta prima di ActionBarSherlock essere visualizzati? Idealmente, non è necessaria una schermata iniziale, in quanto vi sono diversi modi per accedere all'attività che eviterebbe la schermata iniziale mostrata sopra.

--- aggiornare il mio file di tema ----

<style name="MyTheme" parent="Theme.Sherlock.ForceOverflow"> 
    <item name="android:windowBackground">@color/white</item> 
    <item name="android:actionBarStyle">@style/MyTheme.ActionBar</item> 
    <item name="android:actionMenuTextColor">@color/white</item> 
    <item name="actionBarStyle">@style/MyTheme.ActionBar</item> 
    <item name="actionMenuTextColor">@color/white</item> 
</style> 

<style name="MyTheme.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse"> 
    <item name="android:background">@color/blue</item> 
    <item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item> 
    <item name="android:displayOptions">showHome|useLogo</item> 
    <item name="displayOptions">showHome|useLogo</item> 
    <item name="background">@color/blue</item> 
    <item name="titleTextStyle"> @style/MyTheme.ActionBar.TitleTextStyle</item> 
</style> 

<style name="MyTheme.ActionBar.TitleTextStyle" parent="@android:style/TextAppearance"> 
    <item name="android:textColor">@color/blue</item> 
</style> 

risposta

10

è stato risolto con l'aggiunta di un'icona per lo stile, che è la stessa come il logo. Questo sostituisce l'icona di avvio.

<style name="MyTheme.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse"> 
     <item name="android:background">@color/infostop_blue</item> 
     <item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item> 
     <item name="android:displayOptions">showHome|useLogo</item> 
     <item name="displayOptions">showHome|useLogo</item> 
     <item name="android:icon">@drawable/ab_logo</item> 
     <item name="icon">@drawable/ab_logo</item> 
     <item name="background">@color/blue</item> 
     <item name="titleTextStyle"> @style/MyTheme.ActionBar.TitleTextStyle</item> 
    </style> 
+0

E 'stato davvero difficile trovare la tua domanda, e sono contento di averlo fatto perché la tua risposta funziona. :) –