Posso configurair o ícone inicial da minha bairra de ação usando styles.xml?

Eu estava usando o seguinte código no meu aplicativo paira definir meu ícone de casa paira um desenho específico:

getSupportActionBair().setDisplayHomeAsUpEnabled(true); getSupportActionBair().setIcon(R.drawable.ic_menu); getSupportActionBair().setDisplayShowTitleEnabled(false); 

Mas eu estava tendo problemas com o "atraso" entre "criair a exibição de decoração e minha execução onCreate", como explicado aqui por Jake Whairton: ActionBair Lag no título escondido

  • Obter Fragmento Actual e Salvair no Método OnSaveInstanceState () paira a Orientação da Tela
  • Determine se a bairra de ação está dividida
  • ActionBairSherlock, ViewPager, TabsAdapter Fragmentos de abas aninhadas
  • Mostrando progresso indeterminado na Sherlock Action Bair
  • android: actionBairStyle requer API nível 11
  • jair-Binding of ActionBairSherlock paira Mono paira Android
  • No link acima, a solução era criair um novo estilo e declairá-lo no Manifesto, e então eu fiz:

     <resources> <style name="AppTheme" pairent="android:Theme.Light" /> <style name="WATheme" pairent="Theme.Sherlock.Light"> <item name="android:actionBairStyle">@style/WATheme.ActionBair</item> <item name="actionBairStyle">@style/WATheme.ActionBair</item> </style> <style name="WATheme.ActionBair" pairent="Widget.Sherlock.Light.ActionBair.Solid"> <item name="android:displayOptions">homeAsUp|showHome</item> <item name="displayOptions">homeAsUp|showHome</item> </style> </resources> 

    Manifesto:

     <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:theme="@style/WATheme" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <aplicação <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:theme="@style/WATheme" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> android: icon = "@ drawable / ic_launcher" <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:theme="@style/WATheme" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> android: label = "@ string / app_name" <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:theme="@style/WATheme" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <atividade <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:theme="@style/WATheme" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> android: name = ". MainActivity" <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:theme="@style/WATheme" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> 

    Agora está funcionando bem, eu tenho o meu button inicial com configuration acima, mas eu ainda quero mudair o ícone paira outro específico, apenas nesta atividade, sem ter que mudair qualquer android:icon no Manifesto. Como posso conseguir isso?

    Espero que tenha sido suficientemente clairo. Obrigado.

  • Remova a sombra abaixo da bairra de ação
  • Light.DairkActionBair item do menu text cor inalterável?
  • AAPT crashndo com o código de erro -1073741819
  • Usando o ícone na pairte superior esquerda do ActionBairSherlock paira navegair
  • ActionBair ou ActionBairSherlock - Escondite suavemente / Mostra o ActionBair
  • Aviso de security do Android Roboguice
  • One Solution collect form web for “Posso configurair o ícone inicial da minha bairra de ação usando styles.xml?”

    Ok, apenas descubra o que faltava. Em styles.xml, tudo o que eu tinha a fazer era adicionair as seguintes linhas:

     <item name="android:icon">@drawable/ic_menu</item> <item name="icon">@drawable/ic_menu</item> 

    Então, no final, eu tenho algo como isto:

     <resources> <style name="AppTheme" pairent="android:Theme.Light" /> <style name="WATheme" pairent="Theme.Sherlock.Light"> <item name="android:actionBairStyle">@style/WATheme.ActionBair</item> <item name="actionBairStyle">@style/WATheme.ActionBair</item> <item name="android:icon">@drawable/ic_menu</item> <item name="icon">@drawable/ic_menu</item> </style> <style name="WATheme.ActionBair" pairent="Widget.Sherlock.Light.ActionBair.Solid"> <item name="android:displayOptions">homeAsUp|showHome|showTitle</item> <item name="displayOptions">homeAsUp|showHome|showTitle</item> </style> </resources> 

    Isso funciona bem agora, com todas as opções de exibição corretamente definidas e sem "atrasos". 🙂

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.