J'essaie d'y parvenir (une minuterie dans toolbar
avec un fond rouge):
J'essaie d'ajouter customView
dans toolbar
. Il finit toujours par être à l'extrême gauche juste à côté de la flèche arrière. Comme le texte YP
dans l'image ci-dessous est un Textview
personnalisé ajouté à la barre d'outils . .
Le code pour toolbar
:
<?xml version="1.0" encoding="utf-8"?>
<Android.support.v7.widget.Toolbar
Android:id="@+id/base_activity_toolbar"
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="?attr/colorPrimary"
Android:elevation="4dp"
Android:minHeight="?attr/actionBarSize"
Android:popupTheme="@style/ThemeOverlay.AppCompat.Light"
Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
Le code pour ajouter la mise en page:
LayoutInflater mInflater= LayoutInflater.from(context);
View mCustomView = mInflater.inflate(R.layout.textview, null);
toolbar.addView(mCustomView);
Voici la disposition que j'ajoute en ce moment pour les tests:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="horizontal"
Android:layout_width="wrap_content"
Android:gravity="end"
Android:layout_height="wrap_content">
<TextView Android:layout_width="wrap_content"
Android:text="yp"
Android:layout_height="wrap_content"/>
</LinearLayout>
Je manque quelque chose de façon majeure, ne pouvait pas comprendre. Tirer mes cheveux.
Vous pouvez ajouter ViewGroups
à l'intérieur Toolbar
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="@dimen/toolbar_height"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<RelativeLayout
....
</RelativeLayout>
</Android.support.v7.widget.Toolbar>
Je viens de définir layout_gravity sur right
et cela a fonctionné
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="0dp"
Android:layout_height="?android:actionBarSize"
app:title="NEW REQUESTS"
>
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="blahblah"
Android:layout_gravity="right"
/>
</Android.support.v7.widget.Toolbar>
Les réponses données fonctionnent mais si vous souhaitez définir un titre dans la barre d'outils (très probablement), l'ajout d'un RelativeLayout
repousse le titre hors de la vue vers la droite. Dans ce cas, vous devez désactiver le titre de la barre d'outils en définissant getSupportActionBar().setDisplayShowTitleEnabled(false)
et ajouter une TextView personnalisée à côté de l'autre vue que vous souhaitez ajouter à la barre d'outils. Ainsi, par exemple, vous ajouteriez un ImageView
de cette façon:
<?xml version="1.0" encoding="utf-8"?>
<Android.support.v7.widget.Toolbar
Android:id="@+id/base_activity_toolbar"
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:background="?attr/colorPrimary"
Android:elevation="4dp"
Android:minHeight="?attr/actionBarSize"
Android:popupTheme="@style/ThemeOverlay.AppCompat.Light"
Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/>
<RelativeLayout
Android:layout_width="wrap_content"
Android:layout_height="match_parent">
<TextView
Android:id="@+id/custom_toolbar_title"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_centerVertical="true"
style="@style/ActionBarTitle"/>
<ImageView
Android:layout_width="20dp"
Android:layout_height="20dp"
Android:scaleType="centerCrop"
Android:adjustViewBounds="true"
Android:layout_centerVertical="true"
Android:layout_toRightOf="@id/custom_toolbar_title"
Android:src="@drawable/arrow"/>
</RelativeLayout>
</Android.support.v7.widget.Toolbar>
Je viens d'avoir le même problème mais j'ai trouvé une solution plus simple (à mon humble avis).
Vous pouvez légèrement changer votre code depuis:
LayoutInflater mInflater= LayoutInflater.from(context); View mCustomView = mInflater.inflate(R.layout.textview, null); toolbar.addView(mCustomView);
À :
LayoutInflater mInflater= LayoutInflater.from(context);
View mCustomView = mInflater.inflate(R.layout.textview, null);
toolbar.addView(mCustomView, new Toolbar.LayoutParams(Gravity.RIGHT));
La vue est ensuite ajoutée avec la gravité réglée à droite!
essaie. remplacer R.layout.textview par
<RelativeLayout Android:layout_height="match_parent"
Android:layout_width="match_parent"
>
<TextView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="TV"
Android:id="@+id/textView2"
Android:layout_centerVertical="true"
Android:layout_alignParentRight="true"
Android:layout_alignParentEnd="true" />
</RelativeLayout>