El efecto de ondulación de fondo en los elementos de la barra de herramientas de StandAlone se ha ido
El uso de la barra de herramientas independiente tiene un problema con el fondo de selección de los elementos, seguir este artículo no funcionó también:
Http://blog.mohitkanwal.com/blog/2015/03/07/styling-material-toolbar-in-android/
- Barra de herramientas android popupTheme vs theme
- Notificación de la divisa en la barra de herramientas en la barra de herramientas - Android
- Barra de herramientas: IllegalStateException - configura tu compilación para VectorDrawableCompat
- Spinner onItemSelected no se llama usando Marsmallow
- No hay sombra por defecto en la barra de herramientas?
Compruebe la barra de herramientas normal en la siguiente captura de pantalla, el selector de efecto de rizado se ha ido cuando se utiliza la barra de herramientas independiente.
Aquí está mi estilo:
<style name="ToolbarTheme" parent="Widget.AppCompat.Toolbar"> <item name="actionMenuTextColor">@color/green</item> <item name="drawerArrowStyle">@style/DrawerArrowToggle</item> <item name="colorControlNormal">@color/white</item> <item name="colorControlActivated">@color/white</item> <item name="android:textColorPrimary">@color/white</item> <item name="titleTextAppearance">@style/ActionBar.TitleText</item> <item name="android:actionOverflowButtonStyle">@style/MoreActionButton</item> <item name="actionButtonStyle">@style/Widget.AppCompat.ActionButton</item> <item name="selectableItemBackground">?android:selectableItemBackground</item> <item name="selectableItemBackgroundBorderless">?android:selectableItemBackground</item> <item name="colorControlHighlight">@color/accentColor</item> </style>
EDIT: Después de aislar el problema de mi código he podido reproducir el problema y parece que está relacionado con la nueva biblioteca de diseño de soporte. Y aquí está el código de prueba que tiene el problema:
TestToolbar.zip
- Barra de herramientas android muestra medio contenido
- Cuál es la diferencia entre windowActionBar y android: windowActionBar
- Cómo animar barras de herramientas superior e inferior (o cualquier otra vista) entrar / salir de la pantalla en desplazamiento en CoordinatorLayout?
- Los eventos de toque de ActionMode se pasan a la barra de herramientas
- Diseño de material - Barra de herramientas de AppCompat sin mostrar sombra
- Cambiar TextColor en SearchView mediante la barra de herramientas de Android
- Problemas en el uso de nuevo componente de la barra de herramientas, ocultar y mostrar Icono del cajón de navegación, icono de inicio de clic de iconos de fragmentos
- Barra de herramientas no visible en el diseño
Esto se hizo con el android 5.1 genymotion emulador
No he descubierto su problema, pero sólo traté de crear una barra de herramientas lo mismo que la suya, pero con la eliminación de algún estilo que no tengo
Aquí está mi estilo
<style name="ToolbarTheme" parent="Widget.AppCompat.Toolbar"> <item name="actionMenuTextColor">#1bff3a</item> <item name="colorControlNormal">#FFF</item> <item name="colorControlActivated">#FFF</item> <item name="android:textColorPrimary">#FFF</item> <item name="actionButtonStyle">@style/Widget.AppCompat.ActionButton</item> <item name="selectableItemBackground">?android:selectableItemBackground</item> <item name="selectableItemBackgroundBorderless">?android:selectableItemBackground</item> <item name="colorControlHighlight">@color/accentColor</item> </style>
Diseño de mi barra de herramientas
<android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?colorPrimary" app:theme="@style/ToolbarTheme" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
Mi Menú
<item android:id="@+id/action_settings" android:title="@string/action_settings" android:icon="@drawable/abc_ic_clear_mtrl_alpha" app:showAsAction="always" />
El código de actividad
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); toolbar.inflateMenu(R.menu.menu_home);
Captura de pantalla del resultado
Editar
Después de descargar el ejemplo proporcionado en la pregunta, el problema no tiene nada que ver con barra de herramientas independiente o barra de acción (ambos tienen el mismo problema) cuando se utiliza AppBarLayout
, el problema parece que el efecto Ripple
se dibujará en AppBarLayout
lugar de la vista de la Elemento de menú seleccionado, grabaré un video explicándolo.
El video: AppBarLayout con el video de la barra de herramientas
Trataré de encontrar una solución para esto.
La solución con respecto a la selectableItemBackground
también no funcionó para mí. La mejor estrategia que vine hasta ahora es establecer el fondo de la barra de herramientas a transparente:
<android.support.v7.widget.Toolbar ... android:background="@android:color/transparent"/>
Esto permite que el efecto de ondulación (recortado a la altura de la barra de acción) en estado expandido / colapsado / intermedio.
Parece que el efecto de rizado sigue ahí, pero el color de la ondulación ha cambiado. No estoy seguro de cuál es su problema, pero esto es lo que veo.
Te sugiero que elimines
<item name="colorControlHighlight">@color/accentColor</item>
Desde su código y ejecútelo de nuevo. Si las ondulaciones no muestran (deben), cambiar el color de acento.
Chris Bane respuesta sobre el tema original:
https://code.google.com/p/android/issues/detail?id=176431
Esto se debe a que por defecto? Attr / actionBarItemBackground es un RippleDrawable sin límites, lo que significa que proyecta / dibuja en el siguiente padre. En este caso, este es el CollapsingToolbarLayout que no se puede ver realmente.
No hay mucho que podamos hacer aquí desde la perspectiva de la biblioteca. La "solución" es establecer actionBarItemBackground para no ser sin bordes:
<style name="Theme.Toolbar.Collapsing" parent="ThemeOverlay.AppCompat.Dark.ActionBar"> <item name="actionBarItemBackground">?attr/selectableItemBackground</item> </style> <Toolbar ... android:theme="Theme.Toolbar.Collapsing" />
- Cómo cargar una imagen en el servidor de análisis utilizando analizar api en android
- Android: GLES20: Se llama API OpenGL ES no implementada