Question Définir un logo personnalisé pour ActionBar (différent de Logo) en XML?


Je veux créer un fichier Actionbar_style.xml pour mon application et je voudrais utiliser un logo différent de celui de mon logo / icône.

Comment le changer programmativement est clair: Changer le logo qui apparaît dans Android ActionBar par programmation Mais comme ça, je devrais coder ceci dans chaque activité.

Y at-il une balise XML pour définir un Actionbarlogo personnalisé dans XML déjà?

mon customstyles.xml

<style name="CustomActionBar0" parent="android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">@drawable/action_bg0</item>
</style>

styles.xml Android ne semble pas l'avoir ...

<style name="Widget.ActionBar">
    <item name="android:background">@android:drawable/action_bar_background</item>
    <item name="android:displayOptions">useLogo|showHome|showTitle</item>
    <item name="android:divider">@android:drawable/action_bar_divider</item>
    <item name="android:height">?android:attr/actionBarSize</item>
    <item name="android:paddingLeft">0dip</item>
    <item name="android:paddingTop">0dip</item>
    <item name="android:paddingRight">0dip</item>
    <item name="android:paddingBottom">0dip</item>
    <item name="android:titleTextStyle">@android:style/TextAppearance.Widget.ActionBar.Title</item>
    <item name="android:subtitleTextStyle">@android:style/TextAppearance.Widget.ActionBar.Subtitle</item>
    <item name="android:progressBarStyle">@android:style/Widget.ProgressBar.Horizontal</item>
    <item name="android:indeterminateProgressStyle">@android:style/Widget.ProgressBar.Small</item>
    <item name="android:homeLayout">@android:layout/action_bar_home</item>
</style>

23
2018-01-04 14:21


origine


Réponses:


Il suffit de définir une valeur pour l'android: attribut d'icône

<style name="AppTheme" parent="@android:style/Theme.Holo.Light">
        <item name="android:actionBarStyle">@style/AppTheme.ActionBarStyle</item>
</style>

<style name="AppTheme.ActionBarStyle" parent="android:style/Widget.Holo.Light.ActionBar">
        <item name="android:background">@drawable/actionbar_background</item>
        <item name="android:titleTextStyle">@style/AppTheme.ActionBar.TitleTextStyle</item>
        <item name="android:icon">@drawable/ic_home</item>
        <item name="android:indeterminateProgressStyle">@style/IndeterminateProgress</item>
</style>

36
2017-08-01 15:36



Vous ne stylisez pas le logo dans votre style XML, vous utilisez simplement android:logo dans votre manifeste, utilisez ensuite setDisplayUseLogoEnabled() pour le mettre dans le ActionBar. Voici un projet de Google qui montre comment basculer entre les deux. http://code.google.com/p/styled-action-bar/


2
2018-01-04 15:44



On dirait que vous devez utiliser une disposition personnalisée pour la barre d'action, de cette façon, vous pouvez définir ce que vous voulez pour l'image du logo.

Barre d'action / style ActionbarSherlock

    <style name="ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
  <item name="displayOptions">showCustom</item>
  <item name="android:displayOptions">showCustom</item>

   <item name="customNavigationLayout">@layout/action_bar_home_icon_default</item>
   <item name="android:customNavigationLayout">@layout/action_bar_home_icon_default</item>
  </style>

@ layout / action_bar_home_icon_default est votre disposition personnalisée, avec votre logo personnalisé


1
2017-07-30 16:26



Oui. Vous pouvez définir un logo différent pour différentes activités. Voici l'exemple de code dans le fichier manifeste.

<activity
   android:name="MyActivity"
   ***android:icon="@drawable/logo"***            
   android:label="@string/app_name"
   android:configChanges="orientation"           
   android:screenOrientation="portrait" />

J'espère que cette aide À votre santé!


-1
2017-11-23 08:19