0

J'essaie d'implémenter une barre d'outils dans une application avec tiroir de navigation. Maintenant, j'essaie de centrer le titre de ma barre d'outils pour tous les fragments. Mon problème est, que j'ai parfois une icône à la droite de l'icône de hamburger dans le tiroir de navigation et j'ai une icône de l'application sur le côté gauche de la barre d'outils. Pour rendre ces icônes supplémentaires visibles, je dois utiliser une mise en page relative, sinon l'icône de l'application sur la gauche serait manquante.Barre d'outils centrale Titre de la barre d'outils personnalisée avec icônes et bouton de basculement du tiroir de navigation

Le XML de mon activité avec la barre d'outils ressemble à ceci:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:id="@+id/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@color/white" 
tools:context="app.activities.HomeActivity"> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <android.support.v7.widget.Toolbar 
     android:layout_height="wrap_content" 
     android:layout_width="match_parent" 
     android:id="@+id/home_toolbar" 
     android:minHeight="?attr/actionBarSize" 
     android:background="@color/white" 
     app:contentInsetStartWithNavigation="0dp"> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 

      <ImageView 
       android:id="@+id/search_toolbar_icon" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:paddingLeft="8dp" 
       android:paddingRight="8dp" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:layout_centerVertical="true" 
       android:src="@drawable/icon_search_hightlighted" /> 

      <ImageView 
       android:id="@+id/refresh_toolbar_icon" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:paddingLeft="8dp" 
       android:paddingRight="8dp" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:layout_centerVertical="true" 
       android:src="@drawable/icon_refresh" 
       android:visibility="gone"/> 

      <TextView 
       android:id="@+id/actionbar_title" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_centerInParent="true" 
       android:text="@string/action_bar_title_home" 
       android:gravity="center" 
       android:textColor="@color/black" 
       android:textSize="18sp" /> 

      <ImageView 
       android:id="@+id/logo" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerVertical="true" 
       android:scaleType="centerCrop" 
       android:layout_alignParentRight="true" 
       android:src="@drawable/app_logo" /> 

     </RelativeLayout> 
    </android.support.v7.widget.Toolbar> 


<FrameLayout 
    android:id="@+id/container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 
</LinearLayout> 

<fragment 
    android:id="@+id/navigation_drawer" 
    android:name="app.fragments.NavigationDrawerFragment" 
    android:layout_width="@dimen/navigation_drawer_width" 
    android:layout_marginTop="?attr/actionBarSize" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    tools:layout="@layout/fragment_navigation_drawer" /> 

</android.support.v4.widget.DrawerLayout> 

Je mis la visibilité des icônes de la barre d'outils à gauche pour fonction avarié ou visible du fragment choisi. Est-ce que quelqu'un sait comment il serait possible de centrer le titre de la barre d'outils et d'avoir toujours mes images visibles dans ma barre d'outils?

Merci d'avance.

EDIT

ma barre d'outils Titre est pas placé au centre pour le moment. Il est positionné comme dans cette question: ToolBar title doesn't center

Je l'ai déjà lu qu'il serait possible de centrer si le la disposition par rapport serait allé et définir la gravité de la mise en page du TextView à center_horizontal mais cela ne fonctionne pas pour moi parce que mon ImageView de l'App n'apparaîtra pas sur la droite de la barre d'outils.

Répondre

0

Je résolus comme ça maintenant:

<android.support.v7.widget.Toolbar 
    android:id="@+id/home_toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="?attr/actionBarSize" 
    android:layout_gravity="center" 
    android:background="@color/white" 
    app:contentInsetEnd="0dp" 
    app:contentInsetLeft="0dp" 
    app:contentInsetRight="0dp" 
    app:contentInsetStart="0dp" 
    app:contentInsetStartWithNavigation="0dp"> 

    <ImageView 
     android:id="@+id/search_toolbar_icon" 
     android:layout_width="36dp" 
     android:layout_height="36dp" 
     android:src="@drawable/icon_search_hightlighted" /> 

    <TextView 
     android:id="@+id/actionbar_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:text="@string/action_bar_title_home" 
     android:textColor="@color/black" 
     android:textSize="18sp" /> 

    <ImageView 
     android:id="@+id/logo" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="end" 
     android:adjustViewBounds="true" 
     android:scaleType="centerCrop" 
     android:src="@drawable/nav_icon" 
     android:layout_marginEnd="10dp" 
     android:layout_marginRight="10dp" /> 

    <ImageView 
     android:id="@+id/refresh_toolbar_icon" 
     android:layout_width="36dp" 
     android:layout_height="36dp" 
     android:padding="8dp" 
     android:src="@drawable/icon_refresh" 
     android:visibility="gone" 
     tools:visibility="visible" /> 

</android.support.v7.widget.Toolbar> 
0

Je n'ai pas assez de réputation pour commenter.

Votre question n'est pas très claire pour moi. Si je comprends bien, vous avez déjà réussi à centrer le titre, mais lorsque vous désactivez la visibilité de l'image, le titre n'est plus centré?

Si cela est correctement compris, avez-vous essayé de définir la visibilité de l'image comme invisible au lieu de disparaître? Ce faisant, imageView occupera toujours le même espace dans la mise en page, mais ne sera pas visible pour l'utilisateur.

+0

la question que j'edited et a ajouté un lien à une autre question qui montre un peu comment mon titre est positionné. C'est un peu à la droite du centre. – Distra

+0

Avez-vous essayé d'utiliser un FrameLayout à la place? Peut-être que cela vous donnera le contrôle dont vous avez besoin en utilisant l'approche où vous avez mentionné que vous l'avez fait fonctionner mais l'image vers la droite a disparu. –

0

essayez la propriété suivante pour toolbar.

<android.support.v7.widget.Toolbar 
    xmlns:app="schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/primaryColor" 
    android:contentInsetLeft="0dp" 
    android:contentInsetStart="0dp" 
    app:contentInsetLeft="0dp" 
    app:contentInsetStart="0dp" 
    android:contentInsetRight="0dp" 
    android:contentInsetEnd="0dp" 
    app:contentInsetRight="0dp" 
    app:contentInsetEnd="0dp" /> 
+0

quand j'ajoute ce code ma disposition relative correspond à la barre d'outils entière (ce qu'il n'a pas fait auparavant), et le titre semble centré dans l'aperçu, mais pas dans l'application. – Distra

+0

vous voulez dire que vous n'avez pas vu de changements dans l'application? –