2017-09-09 1 views
-1

J'ai créé la barre d'outils personnalisée comme barre d'action de mon activité. Je veux que l'étiquette du titre soit affichée au centre de ma barre d'outils.Comment aligner textview dans le centre de la barre d'outils tout en ajoutant le bouton Précédent dans la barre d'action de soutien

Toolbar fichier de ressources de mise en page est,

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical"> 

<android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/my_toolbar_select" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="?attr/colorPrimary" 
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
    android:weightSum="1"> 

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

     <ImageView 
      android:id="@+id/button1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="right" 
      android:layout_marginRight="15dp" 
      android:layout_marginTop="20dp" 
      android:src="@drawable/ic_menu_camera" /> 

      <TextView 
       android:id="@+id/text1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:singleLine="true" 
       android:text="sample text" 
       android:textColor="@color/progressWhite" 
       android:textSize="14sp" /> 

      <TextView 
       android:id="@+id/text2" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:singleLine="true" 
       android:text="Heading" 
       android:layout_gravity="center" 
       android:textColor="@color/progressWhite" 
       android:textSize="18sp" 
       android:textStyle="bold" /> 

      <TextView 
       android:id="@+id/text3" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center|center_horizontal" 
       android:singleLine="true" 
       android:text="second line heading" 
       android:textColor="@color/progressWhite" 
       android:textSize="12sp" 
       android:layout_marginBottom="15dp"/> 


    </LinearLayout> 


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

Et mon activité contient,

Toolbar toolbar = (Toolbar) findViewById(R.id.my_toolbar_select_seat); 
setSupportActionBar(toolbar); 
getSupportActionBar().setDisplayShowTitleEnabled(false); 

getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
getSupportActionBar().setDisplayShowHomeEnabled(true); 

Je voulais aligner trois TextView dans le centre de ma barre d'outils, mais ne pouvait pas être capable d'aligner exactement au centre de ma barre d'outils. Lorsque je lance l'application sur mon appareil, elle n'est pas correctement alignée. Comment pourrais-je résoudre ce problème?

Répondre

0

Des Toolbar docs:

Une ou plusieurs vues personnalisées. L'application peut ajouter des vues enfants arbitraires à la barre d'outils. Ils apparaîtront à cette position dans la mise en page. Si Toolbar.LayoutParams d'une vue enfant indique une valeur Gravity de CENTER_HORIZONTAL, la vue essayera de se centrer dans l'espace disponible restant dans la barre d'outils après que tous les autres éléments ont été mesurés.

Vous voulez center_horizontal sur la vue qui sera dans la barre d'outils, dans ce cas, le LinearLayout. Vous pouvez le faire wrap_content afin qu'il soit centré dans la barre d'outils en ne prenant que la place dont il a besoin. Ensuite, vous définissez son gravity à center_horizontal afin que son contenu soit centré en son sein. Vous pouvez ensuite supprimer tous les attributs gravity_ sur tous les enfants car ils sont désormais alignés sur la base du LinearLayout. Je peaufiné votre échantillon:

<android.support.v7.widget.Toolbar xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/my_toolbar_select" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="?attr/colorPrimary" 
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

    <LinearLayout 
     android:gravity="center_horizontal" 
     android:layout_gravity="center_horizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 

     <ImageView 
      android:id="@+id/button1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/cmn_add" /> 

     <TextView 
      android:id="@+id/text1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:singleLine="true" 
      android:text="sample text" 
      android:textColor="@color/white" 
      android:textSize="14sp" /> 

     <TextView 
      android:id="@+id/text2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:singleLine="true" 
      android:text="Heading" 
      android:textColor="@color/white" 
      android:textSize="18sp" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/text3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:singleLine="true" 
      android:text="second line heading" 
      android:textColor="@color/white" 
      android:textSize="12sp" 
      android:layout_marginBottom="15dp"/> 

    </LinearLayout> 

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

Cela me donne quelque chose comme ceci:

Layout Preview

Hope that helps!

P.S. - Lorsque vous postez des problèmes de mise en page qui ne vous semblent pas corrects, il serait très utile d'afficher une capture d'écran de la mise en page que vous obtenez et une maquette ou quelque chose de ce que vous voulez réellement. Sinon, les gens doivent deviner en fonction de votre description.

+0

Merci. Ça fonctionne bien! –