Título del centro de Android con el cajón de navegación

Actualmente tengo un cajón de navegación con una barra de herramientas que tiene un título, deseo centrar este título dentro de la barra de herramientas, pero la barra de herramientas no parece tener en cuenta el icono del cajón como se puede ver en la siguiente imagen.

Fuera de centro

Mientras que cuando uso la misma disposición de la barra de herramientas para otras actividades que no están dentro del cajón de la navegación el título se centra perfectamente, como se muestra en esta imagen:

Introduzca aquí la descripción de la imagen

Entonces, ¿cómo puedo conseguir que tenga en cuenta este icono?

Aquí está mi diseño:

<android.support.design.widget.AppBarLayout xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="match_parent" android:theme="@style/Theme.App.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/black" app:popupTheme="@style/Theme.App.PopupOverlay"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/toolbar_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:textColor="@color/white" android:textStyle="bold" android:text="Title" android:textSize="16sp" /> </RelativeLayout> </android.support.v7.widget.Toolbar> </android.support.design.widget.AppBarLayout> 

Necesita entender que el widget de la barra de herramientas extiende la clase ViewGroup y que tiene su propio LayoutParams .

Así que no necesita RelativeLayout dentro de la barra de herramientas, y necesita agregar sólo una línea con TextView.

 android:layout_gravity="center_horizontal" 

Y el final xml debería verse así,

 <android.support.design.widget.AppBarLayout xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/Theme.App.AppBarOverlay" > <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/black" app:popupTheme="@style/Theme.App.PopupOverlay" > <TextView android:id="@+id/toolbar_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="Title" android:textColor="@color/white" android:textSize="16sp" android:textStyle="bold" /> </android.support.v7.widget.Toolbar> 

Quite el RelativeLayout , a continuación, cambie su TextView la TextView manera:

 <android.support.design.widget.AppBarLayout xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="match_parent" android:theme="@style/Theme.App.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@color/black" app:popupTheme="@style/Theme.App.PopupOverlay"> <TextView android:id="@+id/toolbar_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="Title" android:textColor="@color/white" android:textSize="16sp" android:textStyle="bold"/> </android.support.v7.widget.Toolbar> </android.support.design.widget.AppBarLayout> 

Después de esa llamada setDisplayShowTitleEnabled , para quitar el título original, en el método onCreate de su actividad:

 public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayShowTitleEnabled(false); ... } } 

Este es el resultado obtenido:

Introduzca aquí la descripción de la imagen

Necesitas cambiar android:layout_width="wrap_content" a android:layout_width="match_parent" en Textview …..

Espero que esto ayude. Trate de usar este código en su xml, su código con pocos cambios:

Introduzca aquí la descripción de la imagen

 <TextView android:id="@+id/toolbar_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="title" android:gravity="center" android:textColor="#ffffff" android:textSize="21dp" android:textStyle="bold" android:paddingRight="30dp" android:paddingLeft="10dp" android:paddingTop="15dp" /> 

Utilice esto para cada actividad. Esto se asegurará de que su texto cubriría el espacio entero al lado del icono y centraría el texto dentro de él.

 <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imageView" android:paddingTop="15dp" android:src="@drawable/ic_keyboard_arrow_left_black_24dp" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> <TextView android:id="@+id/toolbar_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="title" android:gravity="center" android:textColor="#ffffff" android:textSize="21dp" android:textStyle="bold" android:paddingRight="30dp" android:paddingLeft="10dp" android:paddingTop="15dp" /> </RelativeLayout> --------Nav_Drawer layout <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="@dimen/nav_header_height" android:background="@drawable/side_nav_bar" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:theme="@style/ThemeOverlay.AppCompat.Dark" android:orientation="vertical" android:gravity="bottom"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="@dimen/nav_header_vertical_spacing" android:src="@android:drawable/sym_def_app_icon" android:id="@+id/imageView" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingTop="@dimen/nav_header_vertical_spacing" android:text="Android Studio" android:textAppearance="@style/TextAppearance.AppCompat.Body1" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="android.studio@android.com" android:id="@+id/textView" /> </LinearLayout> 
  • Cómo puedo colocar el menú de desbordamiento debajo de la barra de herramientas en lugar del menú de desbordamiento para superponer la barra de aplicaciones
  • Superposiciones ListView con ToolBar
  • Fondo degradado en la barra de herramientas temática material
  • ¿Cómo hacer que el menú emergente de desbordamiento evite obstruir la barra de acción?
  • Grabación de la barra de herramientas en la barra de herramientas extendida
  • AppBarLayout extrañamente toma espacio y empuja el contenido hacia abajo
  • Barra de herramientas de superposición transparente de Android
  • Reemplazar el diseño de la barra de herramientas de acuerdo con el fragmento visualizado
  • Cómo cambiar los iconos de los iconos del menú de navegación y desbordamiento de la barra de herramientas (appcompat v7)?
  • Barra de herramientas de soporte técnico de Android colorControlNormal color
  • ¿Cómo se elimina un menú / elementos inflados de la nueva barra de herramientas Lollipop?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.