java android xml android-actionbar

java - ¿Cómo establecer el título de ActionBar en el medio en lugar de la posición alineada a la izquierda predeterminada?



android xml (5)

Intentando establecer el título de ActionBar en el medio en lugar de la posición alineada a la izquierda predeterminada. Para hacerlo, en base a otras respuestas, esto es lo que he hecho:

Toolbar myToolbar = (Toolbar) findViewById(R.id.toolbarDownloads); setSupportActionBar(myToolbar); if(getSupportActionBar()!=null) { getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); getSupportActionBar().setCustomView(R.layout.actionbar_layout); }

actionbar_layout.xml

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Downloads" android:layout_centerInParent="true" android:textColor="#000000" android:id="@+id/mytext" android:textSize="18sp" /> </RelativeLayout>

Sin embargo, esto no produce el resultado deseado (es decir, esto hace que el texto, sin embargo, todavía se mantenga alineado) , ¿qué tiene de malo este enfoque y cómo solucionarlo?


Enfoque simple: use android:layout_gravity="center" en su TextView y oculte el título predeterminado usando el siguiente código después de que inicialice su TextView y establezca el valor

Dentro de tu actividad:

setSupportActionBar(toolbar); getSupportActionBar().setDisplayShowTitleEnabled(false); toolbar_title = (TextView) findViewById(R.id.toolbar_title); toolbar_title.setText("My Custom center title");

Código XML de barra de herramientas personalizada:

<?xml version="1.0" encoding="utf-8"?> <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="wrap_content" app:contentInsetEnd="0dp" app:contentInsetLeft="0dp" app:contentInsetRight="0dp" app:contentInsetStart="0dp" app:contentInsetStartWithNavigation="0dp"> <TextView android:id="@+id/toolbar_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="Toolbar Title" /> </android.support.v7.widget.Toolbar>


Necesita usar la Toolbar de Toolbar en su archivo xml y puede usar TextView dentro de la Toolbar . Puede agregar una vista personalizada en la Toolbar . Una vez que haya terminado con el archivo xml, puede definir la Toolbar en la clase Activity .

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="58dp" android:background="?attr/colorPrimary" android:minHeight="?attr/actionBarSize" android:titleTextColor="#ffffff"> <TextView android:id="@+id/mytext" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="Downloads" android:textColor="#000000" android:textSize="18sp" /> </android.support.v7.widget.Toolbar> //Rest of your code </LinearLayout>

En la clase de actividad puede definir como

Toolbar toolbar; toolbar = (Toolbar) findViewById(R.id.ar_toolbar); toolbar.setTitle("");


No necesitas una Toolbar de Toolbar para esto. Simplemente use un tema como Theme.AppCompat.Light.DarkActionBar con ActionBar en su actividad y use el siguiente código:

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); getSupportActionBar().setCustomView(R.layout.actionbar_layout); } //your code }


pruebe esto use la Toolbar personalizada

<android.support.v7.widget.Toolbar android:id="@+id/ar_toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:layout_scrollFlags="exitUntilCollapsed" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="Center" android:orientation="vertical"> <TextView android:id="@+id/toolbar_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" /> </LinearLayout> </android.support.v7.widget.Toolbar>

ahora en archivo java

private Toolbar toolbar; toolbar = (Toolbar) findViewById(R.id.ar_toolbar); TextView mTitle = (TextView) toolbar.findViewById(R.id.toolbar_title); mTitle.setText("Nilesh Rathod"); setSupportActionBar(toolbar);


<?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="wrap_content" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/transparent" android:minHeight="?attr/actionBarSize" app:contentInsetStart="0dp"> <TextView android:id="@+id/back_txt" style="@android:style/TextAppearance.Medium" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="10dp" android:gravity="center" android:text="Back" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Downloads" android:layout_gravity="center|center_horizontal|center_vertical" android:layout_marginTop="20dp" android:layout_centerInParent="true" android:textColor="#000000" android:id="@+id/mytext" android:textSize="18sp" /> <TextView android:id="@+id/filter_btn" style="@style/Base.TextAppearance.AppCompat.Medium" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="right|center_vertical|center_horizontal" android:layout_margin="10dp" android:drawablePadding="5dp" android:gravity="center" android:text="Back" android:textColor="@android:color/black" /> </android.support.v7.widget.Toolbar> </LinearLayout>