No pude cambiar el color del botón de retroceso. Estoy usando el diseño de material de la barra de herramientas. En mi aplicación, estoy aplicando el fondo negro de la barra de herramientas, pero el diseño posterior es negro de forma predeterminada, por eso solo quiero cambiar el color de este botón de retroceso. Por favor, dame soluciones.
Gracias
Respuestas:
usa este estilo
<style name="Theme.MyFancyTheme" parent="android:Theme.Holo"> <item name="android:homeAsUpIndicator">@drawable/back_button_image</item> </style>
fuente
Puede agregar un estilo a su styles.xml,
<style name="ToolbarTheme" parent="@style/ThemeOverlay.AppCompat.ActionBar"> <!-- Customize color of navigation drawer icon and back arrow --> <item name="colorControlNormal">@color/toolbar_color_control_normal</item> </style>
y agregue esto como tema a su barra de herramientas en la barra de herramientas layout.xml usando la aplicación: tema , verifique a continuación
<?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:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:background="?attr/colorPrimary" app:theme="@style/ToolbarTheme" > </android.support.v7.widget.Toolbar>
fuente
Esta es la forma más sencilla de lograr un tema claro y oscuro para
app:theme
la barra de herramientas. Debe cambiar el valor de la etiqueta de la barra de herramientas.fuente
Theme.AppCompat.Light.DarkActionBar
en mi caso.Para el título blanco de la barra de herramientas y la flecha blanca hacia arriba, utilice el siguiente tema:
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
fuente
Utilizar esta:
<style name="BaseTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorControlNormal">@color/white</item> </style>
fuente
Prueba esto,
final Drawable upArrow = getResources().getDrawable(R.drawable.abc_ic_ab_back_mtrl_am_alpha); upArrow.setColorFilter(getResources().getColor(R.color.grey), PorterDuff.Mode.SRC_ATOP); getSupportActionBar().setHomeAsUpIndicator(upArrow);
fuente
No tienes que cambiar de estilo. Después de configurar su barra de herramientas como barra de acción, puede codificar así
android.getSupportActionBar().setDisplayHomeAsUpEnabled(true); android.getSupportActionBar().setHomeAsUpIndicator(R.drawable.back); //here back is your drawable image
Pero no puede cambiar el color de la flecha hacia atrás con este método
fuente
Si desea un botón de retroceso blanco (←) y un título de barra de herramientas blanco, siga esto:
<android.support.design.widget.AppBarLayout android:id="@+id/app_bar" 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/colorPrimary" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.AppBarLayout>
Cambie el tema de
Dark
aLight
si desea el botón de retroceso negro (←) y el título de la barra de herramientas negro.fuente
Puede utilizar su propio icono utilizando
app:navigationIcon
y para el color del título.app:titleTextColor
Ejemplo:
<android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?actionBarSize" android:background="@color/colorPrimary" app:navigationIcon="@drawable/ic_arrow_back_white_24dp" app:titleTextColor="@color/white" />
fuente
app:navigationIcon="@drawable/ic_back_black"
Simplemente use
MaterialToolbar
y anule los colores predeterminados:<com.google.android.material.appbar.MaterialToolbar style="@style/Widget.MaterialComponents.Toolbar.Primary" android:theme="@style/MyThemeOverlay_Toolbar" ..>
con:
<style name="MyThemeOverlay_Toolbar" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary"> <!-- color used by navigation icon and overflow icon --> <item name="colorOnPrimary">@color/...</item> </style>
Si está usando
androidx.appcompat.widget.Toolbar
oMaterialToolbar
con el estilo predeterminado (Widget.MaterialComponents.Toolbar
), puede usar:<androidx.appcompat.widget.Toolbar android:theme="@style/MyThemeOverlay_Toolbar2"
con:
<style name="MyThemeOverlay_Toolbar2" parent="ThemeOverlay.MaterialComponents.Toolbar.Primary"> <!-- This attributes is used by title --> <item name="android:textColorPrimary">@color/white</item> <!-- This attributes is used by navigation icon and overflow icon --> <item name="colorOnPrimary">@color/secondaryColor</item> </style>
fuente
Creo que si el tema se debe generar algún problema, pero su flecha negra configurada dinámicamente, sugiero que intente con este.
fuente
Estoy usando el
<style name="BaseTheme" parent="Theme.AppCompat.Light.NoActionBar>
tema en mi aplicación de Android y en el tema NoActionBar, lacolorControlNormal
propiedad se usa para cambiar el color del icono de navegación predeterminado Flecha del botón Atrás en mi barra de herramientasstyles.xml
<style name="BaseTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorControlNormal">@color/your_color</item> </style>
fuente
Simple y sin preocupaciones
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <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/colorPrimary" app:titleTextColor="@color/white" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> </android.support.design.widget.AppBarLayout> <include layout="@layout/testing" /> </android.support.design.widget.CoordinatorLayout>
fuente
Lo hice de esta manera usando la biblioteca de Componentes de materiales:
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar"> <item name="drawerArrowStyle">@style/AppTheme.DrawerArrowToggle</item> </style> <style name="AppTheme.DrawerArrowToggle" parent="Widget.AppCompat.DrawerArrowToggle"> <item name="color">@android:color/white</item> </style>
fuente
Puede agregar este código a su clase java. Pero debe crear un activo de vector antes, para que pueda personalizar su flecha hacia atrás.
fuente
Para diseñar la barra de herramientas en Android 21+ es un poco diferente.
<style name="DarkTheme.v21" parent="DarkTheme.v19"> <!-- toolbar background color --> <item name="android:navigationBarColor">@color/color_primary_blue_dark</item> <!-- toolbar back button color --> <item name="toolbarNavigationButtonStyle">@style/Toolbar.Button.Navigation.Tinted</item> </style> <style name="Toolbar.Button.Navigation.Tinted" parent="Widget.AppCompat.Toolbar.Button.Navigation"> <item name="tint">@color/color_white</item> </style>
fuente
Si desea que el color de fondo del sistema sea blanco, puede usar este código
<com.google.android.material.appbar.AppBarLayout android:id="@+id/appbar" android:layout_width="match_parent" android:layout_height="wrap_content" app:elevation="0dp" android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> <androidx.appcompat.widget.Toolbar android:id="@+id/toolbar_notification" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:contentInsetLeft="0dp" app:contentInsetStart="0dp" app:contentInsetStartWithNavigation="0dp"> <include layout="@layout/action_bar_notification" /> </androidx.appcompat.widget.Toolbar> </com.google.android.material.appbar.AppBarLayout>
Nota: -
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
es claveLa pasta está en su actividad donde desea mostrar el botón de retroceso en la barra de acción
final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_notification); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(false);
fuente