android - studio - Añadir vista personalizada a la derecha de la barra de herramientas
menu toolbar android (5)
Acabo de poner layout_gravity a la right
y funcionó
<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>
Estoy tratando de lograr esto (un temporizador en la toolbar
de toolbar
con fondo rojo):
Estoy tratando de agregar customView
en la toolbar
de toolbar
. Siempre termina estando en el extremo izquierdo justo al lado de la flecha hacia atrás. Al igual que el texto YP
en la imagen de abajo, hay una vista de texto personalizada agregada a la barra de herramientas. .
El código para la toolbar
de 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" />
El código para agregar el diseño:
LayoutInflater mInflater= LayoutInflater.from(context);
View mCustomView = mInflater.inflate(R.layout.textview, null);
toolbar.addView(mCustomView);
Este es el diseño que estoy agregando ahora para probar:
<?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>
Me estoy perdiendo algo importante, no pude entenderlo. Sacándome los pelos.
Las respuestas dadas funcionan, pero si desea establecer un título en la barra de herramientas (lo más probable es que lo haga), al agregar un RelativeLayout
empuja el título a la derecha. En este caso, debe desactivar el título de la barra de herramientas configurando getSupportActionBar().setDisplayShowTitleEnabled(false)
y agregue un TextView personalizado junto a la otra vista que desee agregar a la barra de herramientas. Entonces, como ejemplo, agregarías un ImageView
esta manera:
<?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>
Puede agregar ViewGroups
dentro de la 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>
Solo tuve el mismo problema pero encontré una solución más simple (en mi humilde opinión).
Puedes cambiar ligeramente tu código desde:
LayoutInflater mInflater= LayoutInflater.from(context); View mCustomView = mInflater.inflate(R.layout.textview, null); toolbar.addView(mCustomView);
A :
LayoutInflater mInflater= LayoutInflater.from(context);
View mCustomView = mInflater.inflate(R.layout.textview, null);
toolbar.addView(mCustomView, new Toolbar.LayoutParams(Gravity.RIGHT));
Luego se agrega la vista con la gravedad ajustada a la derecha!
darle una oportunidad. cambiar R.layout.textview a
<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>