Puis-je définir l'icône de la maison de mon actionbar à l'aide de styles.xml?
J'ai été en utilisant le code suivant sur ma demande de mettre ma maison icône à un drawable:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setIcon(R.drawable.ic_menu);
getSupportActionBar().setDisplayShowTitleEnabled(false);
Mais j'ai eu des problèmes avec le "décalage" entre la "création du décor de la vue et de mon onCreate de l'exécution" comme expliqué ici par Jake Wharton: ActionBar Gal dans la clandestinité titre
Sur le lien ci-dessus, la solution a été de créer un nouveau style, et de le déclarer dans le Manifeste, et j'ai donc fait:
<resources>
<style name="AppTheme" parent="android:Theme.Light" />
<style name="WATheme" parent="Theme.Sherlock.Light">
<item name="android:actionBarStyle">@style/WATheme.ActionBar</item>
<item name="actionBarStyle">@style/WATheme.ActionBar</item>
</style>
<style name="WATheme.ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid">
<item name="android:displayOptions">homeAsUp|showHome</item>
<item name="displayOptions">homeAsUp|showHome</item>
</style>
</resources>
Manifeste:
<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>
Il est maintenant fonctionne bien, j'ai mon bouton home avec la configuration, mais j'ai encore envie de changer l'icône d'un autre drawable, seulement dans cette activité, sans avoir à changer toute android:icon
dans le Manifeste. Comment puis-je y parvenir?
Espère que c'est suffisamment clair. Merci.
OriginalL'auteur Renan Ferrari | 2012-10-19
Vous devez vous connecter pour publier un commentaire.
Ok, il suffit de déterminer ce qu'il manquait. Sur styles.xml tout ce que j'avais à faire est d'ajouter les lignes suivantes:
Donc à la fin j'ai quelque chose comme ceci:
Il fonctionne très bien maintenant, avec tous les displayOptions définir correctement et sans "lag". 🙂
OriginalL'auteur Renan Ferrari