Barre d'outils de navigation icône jamais mis les
Je suis en train d'essayer la nouvelle Barre d'outils du composant et d'avoir quelques ennuis avec l'icône de navigation.
Je veux mettre en œuvre une icône personnalisée pour le retour à la navigation :
Dans mon manifeste-je définir un parent de mon activité :
<activity android:name=".CardsActivity" android:parentActivityName=".MainActivity">
<!-- Parent activity meta-data to support API level 7+ -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
Je déclare la barre d'outils comme ceci :
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.lollitest.MainActivity" >
<android.support.v7.widget.Toolbar
android:id="@+id/my_awesome_toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:layout_marginBottom="10dp"
android:background="?attr/colorPrimary" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/my_awesome_toolbar"
android:text="@string/hello_world" />
</RelativeLayout>
Puis dans mon activité je configurer la Barre d'outils comme ceci :
Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
toolbar.setNavigationIcon(R.drawable.ic_good);
toolbar.setTitle("Title");
toolbar.setSubtitle("Sub");
toolbar.setLogo(R.drawable.ic_launcher);
setSupportActionBar(toolbar);
Qui me donne :
L'icône de retour en arrière n'est pas celui que j'ai mis avec setNavigationIcon()
! Quelle que soit drawable-je donner à la méthode de l'icône de navigation est toujours la flèche de retour.
J'ai essayé de supprimer l'association des parents d'élèves dans le manifeste, mais le seul effet est (évidemment) pour empêcher le bouton pour revenir en arrière.
Au contraire, si je veux que le défaut de retour icône en forme de flèche et de ne pas appeler setNavigationIcon()
je n'ai pas d'icône à tous.
Quelle est la bonne façon de gérer la navigation de l'icône dans la barre d'outils (la coutume et par défaut) ?
NOte : je suis en cours d'exécution de mon test sur Android 4.4
- ive fait cela beaucoup de fois, et en quelque sorte sa ne fonctionne pas pour moi, maintenant?
Vous devez vous connecter pour publier un commentaire.
Actuellement, vous pouvez l'utiliser, de modifier l'ordre: (il semble être un bug)
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
APRÈS vous setSupportActionBar à votre barre d'outils. Similaire à la création de l'icône de navigation.getSupportActionBar().setDisplayHomeAsUpEnabled(true)
changer l'icône de navigation de flèche noire. Résolu ce problème en mettant entoolbar.setNavigationOnClickListener
aveconBackPressed()
.Spécifiques à l'icône de navigation, c'est l'ordre correct
Informer la Barre d'outils pour fournir de l'arrière de la navigation. Ceci permettra de définir l'icône par défaut de matériau icône
Plus tard remplacer l'icône avec la coutume, dans mon cas le Holo icône de retour en arrière
(La réponse à user802421)
toolbar.xml
Je viens de trouver la solution. C'est vraiment très simple:
Espère que ça va vous aider.
mDrawerToggle
objet!ActionBarDrawerToggle(activity, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close)
Utilisation setNavigationIcon de le changer. n'oubliez pas de créer ActionBarDrawerToggle première!
exemple de code de travail pour moi:
J'avais similaire de problème. Après un gros mal de tête, j'ai trouvé que mon ActionBarDrawerToggle modification de l'icône, aussi quand il ne doit pas modifier l'icône (parce que je n'ai pas donner de référence de barre d'outils pour basculer le composant). Donc, à mon NavigationDrawerFragment classe (qui gère l'ouverture et la fermeture) en
setUp(...)
méthode que j'ai mismDrawerToggle.setHomeAsUpIndicator(R.drawable.app_icon);
et enfin, il a travaillé.
J'ai essayé de configurer la barre d'outils comme @Gabriele Mariotti, mais j'ai eu quelques problème avec le titre. Alors j'ai mis de l'ordre à
et il fonctionne.
J'ai utilisé la méthode ci-dessous, ce qui est vraiment une énigme de tous ceux ci-dessus. J'ai aussi trouvé que onOptionsItemSelected n'est jamais activé.
Vous pouvez utiliser
invalidate()
méthode pour modifier la barre d'outils de l'état dans n'importe quel endroit.Exemple:
Supprimer cette ligne d'activité si vous avez ajouté
Puis définir l'icône
Essayez ceci:
de travail pour moi...
Dans le cas où vous ne souhaitez pas définir la barre d'outils la barre d'action, vous pouvez utiliser ceci: