En mi aplicación Android estoy personalizando el ActionBar siguiendo los consejos del android developer blog y otros lugares. Me gustaría poder resaltar un elemento de menú específico en ActionBar, p. con un color de fondo diferente porque es especialmente aplicable a un fragmento actualmente visible (que en realidad lo agregó). Sin embargo, no he encontrado ninguna indicación de que esto pueda hacerse ni lo he logrado todavía. ¿Es posible? ¿Si es así, cómo?Aspecto/estilo diferente para el elemento de menú específico en ActionBar
6
A
Respuesta
12
Así que esto lo hice funcionar con un truco. Aquí va el código fragmento
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
menuItemCreateCart = menu.findItem(R.id.menuItemCreateCart);
if (menuItemCreateCart == null) {
menuItemCreateCart = menu.add(0, R.id.menuItemCreateCart, 0, R.string.Create);
}
TextView tv = new TextView(getActivity());
tv.setText(R.string.Create);
tv.setTextColor(getResources().getColor(R.color.green));
tv.setBackgroundColor(getResources().getColor(R.color.lightBlue));
tv.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
createCart();
}
}
);
menuItemCreateCart.setActionView(tv);
El Gotcha principal es que el OnClickListener tiene que ser establecido en la idea de que haya establecido como acción de la vista y no el elemento de menú para que funcione. De esta forma puedes hacer lo que quieras.
También tenga en cuenta que NO puede usar getActionView para recuperar la vista establecida originalmente con el título porque devolverá nulo. Parece ser más una vista alternativa que la vista real para los elementos de menú predeterminados.
+0
funcionó para mí :) – Shivansh
Cuestiones relacionadas
- 1. Estilo menú desplegable ActionBar
- 2. Agregar elemento de menú al menú contextual de Windows solo para el tipo de archivo específico
- 3. Cómo eliminar un elemento de menú contextual específico en Zedgraph
- 4. ¿Definir logotipo personalizado para ActionBar (diferente de Logo) en XML?
- 5. Elementos del menú de fragmento de ActionBar. Poniéndolos delante
- 6. ¿Puedo modificar theme_menu_link para un menú específico?
- 7. Cambiar los iconos del menú ActionBar según el estilo
- 8. Control dinámico de elementos de acción/menú en ActionBar
- 9. Reemplazar un icono de elemento de menú de ActionBar con una ProgressBar indeterminada
- 10. elemento específico en JSON
- 11. Menú de opciones de recreación de Android ActionBar
- 12. ¿Cómo retener el menú de ActionBar en el tiempo de configuración de la interfaz de usuario?
- 13. Android: Cambie los elementos del menú de ActionBar del Fragmento
- 14. Obtiene el elemento ArrayList específico
- 15. Android: ¿cómo mostrar el icono en ActionBar pero no en el menú de opciones?
- 16. altura diferente para cada elemento de GridView
- 17. Control de repetidor - Cancelar enlace para el elemento específico
- 18. ¿Cómo cambio programáticamente el color del texto del menú de ActionBar?
- 19. actualizar mongodb el elemento específico de subarreglo
- 20. ¿Cuándo ocurre onCreateOptionsMenu en una actividad habilitada para ActionBar?
- 21. Encontrar el elemento antes y después de un elemento específico
- 22. Validar DataGridView en el elemento de menú, haga clic en
- 23. Jquery deshabilitar el tematizado para un elemento específico
- 24. Mostrar solo el elemento de menú en modo de depuración?
- 25. Android: WebView ActionBar (Honeycomb)?
- 26. ¿Cómo puedo modificar un elemento de menú en el menú de opciones en Android?
- 27. XML xpath, obtenga el elemento primario hasta un elemento específico
- 28. IEnumerable foreach, haga algo diferente para el último elemento
- 29. Resalte el elemento de menú actual en la barra lateral
- 30. Cambiar dirección de ActionBar
¿Estás seguro de que no sería más fácil usar un ícono ligeramente diferente? ¿O otros cambios en primer plano que podría realizar a través de su propia vista de acción inflada personalizada o 'ActionProvider'? – CommonsWare
actualmente estos son texto y un ícono sería más difícil de entender. En términos de la vista de acción personalizada o ActionProvider ... tendré que investigar eso. –
Puede cambiar el color de primer plano del texto, al menos si va a la vista de acción/ruta 'ActionProvider'. Desafortunadamente, Android no es compatible con la etiqueta '