studio full example dinamico developer custom bar android toolbar

full - toolbar dinamico android



Cómo establecer el texto de la barra de herramientas y el color de la flecha hacia atrás (13)

Actividad interior, puedes usar

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); toolbar.setTitleTextColor(getResources().getColor(android.R.color.white));

Si le encanta elegir xml para el color del título y la flecha trasera blanca, simplemente agregue este estilo en style.xml.

<style name="ToolBarStyle" parent="Theme.AppCompat"> <item name="android:textColorPrimary">@android:color/white</item> <item name="android:textColorSecondary">@android:color/white</item> <item name="actionMenuTextColor">@android:color/white</item> </style>

Y la barra de herramientas se ve así:

<android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" app:theme="@style/ToolBarStyle" android:layout_height="?attr/actionBarSize" />

El fondo de la barra de herramientas es de color oscuro, quiero que el texto y la flecha de retroceso sean blancos. Intenté seguir, pero no funciona.

<style name="Theme.MyTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/blue</item> <item name="colorPrimaryDark">@color/blue_darker</item> <item name="colorAccent">@color/purple</item> <!-- item name="android:textColorPrimary">@color/white</item--> // I don''t want to set this, changes everywhere. <item name="android:textColorSecondary">@color/white</item> <item name="android:toolbarStyle">@style/AppTheme.ToolbarStyle</item> <item name="toolbarStyle">@style/AppTheme.ToolbarStyle</item> <item name="drawerArrowStyle">@style/AppTheme.DrawerArrowStyle</item> </style> <style name="AppTheme.ToolbarStyle" parent="Base.Widget.AppCompat.Toolbar"> <!--<item name="actionOverflowButtonStyle">@style/AppTheme.OverflowButtonStyle</item>--> <item name="android:textColor">@color/white</item> // doesn''t work <item name="titleTextAppearance">@style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse</item> <item name="android:titleTextAppearance">@style/TextAppearance.AppCompat.Widget.ActionBar.Title.Inverse</item> <item name="subtitleTextAppearance">@style/TextAppearance.Widget.AppCompat.Toolbar.Subtitle</item> </style>


Agregue lo siguiente como toolbar.xml

<?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_height="wrap_content" android:layout_width="match_parent" android:fitsSystemWindows="true" android:minHeight="?attr/actionBarSize" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" android:background="?attr/colorPrimary"> </android.support.v7.widget.Toolbar>

Luego, en el diseño donde necesitabas

<include layout="@layout/toolbar"/>

Disfrutar


Encontré una solución mucho más simple: simplemente agrega este código a tu barra de herramientas en xml

<Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?android:attr/actionBarSize" android:background="?android:attr/colorPrimary" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" android:popupTheme="@style/ThemeOverlay.AppCompat.Light" android:titleTextColor="#ffffffff" />


Lo más probable es que se esté extendiendo desde el padre equivocado. De lo contrario, puede intentar agregar el style al diseño de la toolbar directamente, si desea anular la configuración del tema.

En el diseño de la barra de herramientas:

<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="?attr/actionBarSize" android:minHeight="?attr/actionBarSize" app:theme="@style/ToolBarStyle" app:popupTheme="@style/ToolBarPopupStyle" android:background="@color/actionbar_color" />

En tus estilos:

<!-- ToolBar --> <style name="ToolBarStyle" parent="Theme.AppCompat"> <item name="android:textColorPrimary">@android:color/white</item> <item name="android:textColorSecondary">@android:color/white</item> <item name="actionMenuTextColor">@android:color/white</item> <item name="actionOverflowButtonStyle">@style/ActionButtonOverflowStyle</item> <item name="drawerArrowStyle">@style/DrawerArrowStyle</item> </style>


Para cambiar el ícono de la barra de herramientas hacia atrás, puede usar esto:
Agregue el <item name="toolbarStyle">@style/ToolbarStyle</item> en su tema.
Y aquí está el ToolbarStyle sí:

<style name="ToolbarStyle" parent="Widget.AppCompat.Toolbar"> <item name="navigationIcon">@drawable/ic_up_indicator</item> </style>


Prueba esto en tu archivo XML

<android.support.v7.widget.Toolbar android:id="@+id/toolbar" app:titleTextColor="@color/colorAccent" app:theme="@style/ToolbarColoredBackArrow" app:subtitleTextColor="@color/colorAccent" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" />

Y agrega que este es tu archivo colors.xml

<color name="colorAccent">YOUR_COLOR</color>


Pruebe muchos métodos, en la versión baja de la API, un método factible es <item name="actionMenuTextColor">@color/your_color</item> y no use el espacio de nombres de Android

PD:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <!-- change the textColor --> <item name="actionMenuTextColor">@color/actionMenuTextColor</item> </style>


Si seguimos la plantilla de actividad creada por Android Studios, es el AppBarLayout el que necesita tener un tema Android de AppBarOverlay, que debe definir en su styles.xml. Eso debería darle su texto en color de barra de color / barra de acción de color blanco.

<android.support.design.widget.AppBarLayout android:id="@+id/app_bar" android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> ...

En styles.xml, asegúrese de que exista lo siguiente:

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />


Si utiliza la última iteración de Android Studio 3.0 y genera sus clases de actividad, en sus archivos de estilos cambia esto:

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

A esto:

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.ActionBar" />


Utilicé marcadores de posición, así que simplemente sigan, ya que es posible que desee conservar la herencia del estilo original.

antes de

<android.support.v7.widget.Toolbar android:id="@+id/toolBar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:elevation="4dp" android:theme="@style/{{originalBaseStyle}}" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

Después:

styles.xml

<style name="{{yourToolbarStyle}}" parent="{{originalBaseStyle}}"> <item name="android:textColorPrimary">@android:color/white</item> <item name="android:textColorSecondary">@android:color/white</item> <item name="actionMenuTextColor">@android:color/white</item> <item name="actionOverflowButtonStyle">@style/ActionButtonOverflowStyle</item> <item name="drawerArrowStyle">@style/DrawerArrowStyle</item> </style>

Por lo tanto

<android.support.v7.widget.Toolbar android:id="@+id/toolBar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" android:elevation="4dp" android:theme="@style/{{yourToolbarStyle}}" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>


este método me ayudó.

<style name="AppTheme" parent="Theme.AppCompat.Light"> <item name="colorPrimary">@color/primary</item> <item name="colorPrimaryDark">@color/primaryDark</item> <item name="colorAccent">@color/highlightRed</item> <item name="actionBarTheme">@style/ToolbarStyle</item> </style> <style name="ToolbarStyle" parent="Widget.AppCompat.ActionBar"> <item name="android:textColorPrimary">@color/white</item> </style>


<android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimaryDark" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.AppBarLayout>


<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="?attr/actionBarSize" android:background="@color/actionBar" app:titleTextAppearance="@style/ToolbarTitleText" app:theme="@style/ToolBarStyle"> <TextView android:id="@+id/title" style="@style/ToolbarTitleText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:text="hh"/>

<!-- ToolBar --> <style name="ToolBarStyle" parent="Widget.AppCompat.Toolbar"> <item name="actionMenuTextColor">#ff63BBF7</item> </style>

usar la aplicación: theme = "@ style / ToolBarStyle"

Recursos de referencia: http: //blog.csdn.net/wyyl1/article/details/45972371