Implementación de tres acciones dentro de una única opción de menú en Android

Quiero tener la misma funcionalidad de elemento de menú como en el navegador de cromo para móviles como está en la imagen. Quiero tener atrás, adelante, refrescar los elementos del menú en una sola fila. ¿Cómo puedo implementar un elemento de menú similar? ¿Hay alguna referencia o hay algún hack para llevar esta funcionalidad?

Introduzca aquí la descripción de la imagen

Mi aplicación está dirigida únicamente a tablets. Aquí está mi elemento de menú de barra de acción actual:

<menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/favorite" android:showAsAction="always" android:title="Happy"/> <item android:id="@+id/share_button" android:icon="@drawable/share" android:showAsAction="always" android:title="Share"/> <item android:id="@+id/hola_button" android:showAsAction="always" android:title="Hola"/> <item android:icon="@drawable/more_actions" android:showAsAction="always"> <menu> <item android:id="@+id/back_button" android:icon="@drawable/back" android:title="back"/> <item android:id="@+id/forward_button" android:icon="@drawable/forward" android:title="forward"/> <item android:id="@+id/refresh_button" android:icon="@drawable/refresh" android:title="refresh"/> </menu> </item> </menu> 

Esto parece un cuadro de diálogo personalizado con un listview y un listheader personalizado

O

Una vista de lista debajo de un diseño simple con 3 botones en la parte superior dentro de un diálogo.

Puede mostrar lo mismo en el botón de menú de la barra de acciones.

 @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); getSupportMenuInflater().inflate(R.menu.menu_items, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.show_dlg: // Show your custom dialog break; } return super.onOptionsItemSelected(item); } 

También este tutorial ayudaría como una referencia para inflar menús personalizados http://www.codeproject.com/Articles/173121/Android-Menus-My-Way

EDITAR:

Screenflow de sobrecarga de pantalla

Estos ejemplos son como OverflowMenu (ya que ABS descartó el tema de desbordamiento). Puede inflar cualquier tipo de combinaciones de diseño. Esta clase se extiende desde PopUpWindow y no utiliza las onCreateOptions típicas. Utiliza el ABS-CustomView y un PopUpWindow para crear el menú.

From android reference: Una ventana emergente que se puede utilizar para mostrar una vista arbitraria. La ventana emergente es un contenedor flotante que aparece encima de la actividad actual.

El diseño es similar al diseño solicitado. Esta vista está anclada a la ActionBar pero puede mostrarla en cualquier lugar que desee. La ventana emergente admite muchas funciones de presentación fuera de la caja.

OverflowMenu personalizable

 public class OverflowMenu extends PopupWindow { private View mContentView; public OverflowMenu(Context context, int resourceId) { super(context); mContentView = LayoutInflater.from(context).inflate(resourceId, null); setContentView(mContentView); setHeight(WindowManager.LayoutParams.WRAP_CONTENT); setWidth(WindowManager.LayoutParams.WRAP_CONTENT); // Handle touchevents setOutsideTouchable(true); setFocusable(true); setBackgroundDrawable(new BitmapDrawable()); } /** * Attach the OverflowMenu View to the ActionBar's Right corner * @param actionBarView */ public void show(View actionBarView) { int x = actionBarView.getMeasuredWidth() - mContentView.getMeasuredWidth(); showAsDropDown(actionBarView, x, 0); } /** * Return mContentView, * used for mContentView.findViewById(); * @return */ public View getView(){ return mContentView; } } 

Actividad principal

 public class MainActivity extends SherlockActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mai n); final ActionBar actionBar = getSupportActionBar(); actionBar.setCustomView(R.layout.actionbar); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); final OverflowMenu menu = new OverflowMenu(this,R.layout.menu_overflow); final ImageButton overflowBtn = (ImageButton) actionBar.getCustomView().findViewById(R.id.actionbar_overflow); overflowBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { menu.show(actionBar.getCustomView()); } }); } } 

Podría agregar el elemento de menú a la página con algo como esto:

 OptionCommand command = new OptionCommand(); command.setActionView(view); command.setIcon(canvas.getContext().getResources().getDrawable(android.R.drawable.ic_menu_search)); command.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW); canvas.getActivity().getOptionCommands().add(command); 
  • Menú Ordenando las diferencias debido a la jerarquía Fragmento y Actividad. (OnCreateOptionsMenu)
  • Phonegap cordova nativo android menubutton no disparar
  • Cómo utilizar onActivityResult (..) si la actividad se llama desde un menú
  • La lista de menús sale de la pantalla cuando anyDensity = "false"
  • Cómo crear un menú mediante programación en Android?
  • Icono de menú que no se muestra en la barra de acción
  • jquery mmenu de frebsite no funciona en orientación horizontal en móvil (android)
  • Cambiar el color del texto del elemento de menú en el cajón de navegación
  • Reutilizar código TextView en XML de Android
  • El menú deslizante bloquea el evento táctil en la vista superior
  • Menú del mapa de externalización
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.