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?
- Android ICS: Cómo detectar que un dispositivo tiene "en la pantalla Volver / botón Inicio" (como Galaxy Nexus)
- Cómo implementar valores dinámicos en el elemento de menú en Android
- Android actionLayout no se muestra con la barra de herramientas
- Cómo crear una instancia de menú mediante programación? Es decir, inflar un menú fuera onCreateOptionsMenu
- Cómo crear resideMenu en Android?
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>
- ¿Cómo puedo editar las dimensiones de un elemento de menú PopUp en Android?
- Cómo cambiar el color de fondo del menú de ActionBar (android 4 y 5)
- Cómo obtener un SearchView con MenuItemCompat (Android)
- Crear un menú después de un evento de clic largo en una vista de lista
- EditText: Desactivar el menú emergente de Pegar / Reemplazar en el evento de clic del controlador de selección de texto
- Cómo hacer clic en el índice en el menú de opciones con Espresso Android
- Sherlock Barra de Acción con menú deslizante
- El menú de opciones de Android no se muestra
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:
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);
- ¿Está disponible el achartengine para gráficos en tiempo real?
- Animar bot / parte inferior de la vista viola desplazamiento en recyclerView