web-dev-qa-db-fra.com

Comment définir une icône à la fin de la barre d'outils

Je veux définir une icône à la fin de mon Toolbar, qui démarre une autre activité. Ma portion Toolbar

 <Android.support.v7.widget.Toolbar xmlns:Android="http://schemas.Android.com/apk/res/Android"
                xmlns:app="http://schemas.Android.com/apk/res-auto"
                Android:id="@+id/toolbar"
                Android:layout_width="match_parent"
                Android:layout_height="@dimen/abc_action_bar_default_height_material"
                Android:background="#2B4AE0"
                app:theme="@style/ToolBarStyle">

                <TextView
                    Android:id="@+id/headerText"
                    Android:layout_width="wrap_content"
                    Android:layout_height="wrap_content"
                    Android:textAppearance="@Android:style/TextAppearance.Theme"
                    Android:textColor="@Android:color/white" />

                <RelativeLayout
                    Android:id="@+id/notification"
                    Android:layout_width="50dp"
                    Android:layout_height="match_parent"
                    Android:clickable="true"
                    Android:gravity="center" />

                    <ImageView
                        Android:layout_width="25dp"
                        Android:layout_height="25dp"

                        Android:layout_centerHorizontal="true"
                        Android:layout_centerVertical="true"
                        Android:src="@drawable/bell_icon" />
                </RelativeLayout>
            </Android.support.v7.widget.Toolbar>

J'ai essayé

Android:layout_alignParentEnd="true"

et définissant la marge à gauche, mais cela ne fonctionne pas correctement.

13
shine_joseph

Essayez d'ajouter ceci à votre ImageView:

Android:layout_gravity="end"
29
Sam

Si vous voulez quelque chose comme ça (icône 2) example

Vous n'avez pas besoin d'ajouter manuellement une icône à la mise en page, vous devez implémenter menu.xml

  1. Créez menu.xml comme ceci

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:Android="http://schemas.Android.com/apk/res/Android">
        <item Android:id="@+id/new_activity"
            Android:icon="@drawable/ic_custom_icon"
            Android:title="@string/new_activity" />
    </menu>
    
  2. Ajoutez-le dans votre activité/fragment à la barre d'actions/barre d'outils en

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
       MenuInflater inflater = getMenuInflater();
       inflater.inflate(R.menu.menu, menu);
       return true;
    }
    
  3. Gérer les événements des éléments de menu

La barre d'outils avec menus fonctionne bien, elle définit automatiquement les icônes à droite de la barre d'outils

14
Kirill Shalnov

S'il y a quelqu'un qui reste confus (y compris moi avant), en quelque sorte Android ne fournit pas de saisie semi-automatique pour le Android:layout_gravity sous la balise toolbar. Donc pour que ça marche, copiez et collez simplement Android:layout_gravity="end" à la disposition ImageView /.

1
Kharda
<item
    Android:title="kjljk"
    app:showAsAction="always"
    Android:id="@+id/menuitem_search"
    Android:icon="@drawable/pdficon"
    >
</item>

Puis dans OnCreateView: setHasOptionsMenu (true); En fermant OncreateView ci-dessous, écrivez ceci: @Override

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.pdf, menu);
    ...
}
0
Pritam