¿Cómo agregar el botón de menú sin barra de acción?
Me gustaría añadir un botón de menú a la esquina superior derecha de mi aplicación y sin barra de acción, como en la aplicación de Google Fit en la captura de pantalla de abajo. ¿Alguien puede ayudarme?
- Crear un MenuItem de Android con subtítulos mediante programación
- ¿Cuándo ocurre onCreateOptionsMenu en una actividad activada con ActionBar?
- Cómo agregar una línea entre los elementos en una barra de título de aplicación de menú en Android Studio?
- Cómo dividir el menú como cromo
- Menú de navegación lateral de Android: cómo incluir la barra de acción en la vista deslizante?
- Botones duplicados de ActionBar en rotación
- Cómo cambiar el color de fondo del menú de opciones de Action Bar en Android 4.2?
- Android Toggle Button en ActionBar
- Artículo de menú verificable de Android
- Fragmentos, con el mismo menú, en el mismo diseño causa duplicado menuitem
- ¿Qué es orderInCategory en el elemento de menú ActionBar y por qué se utiliza para ..?
- Recursos de Menú Diferentes de Android
- Activar / Desactivar el elemento del menú ActionBar
Simplemente puede utilizar PopupMenu
, por ejemplo, agregue lo siguiente a un botón cuando haga clic:
public void showPopup(View v) { PopupMenu popup = new PopupMenu(this, v); MenuInflater inflater = popup.getMenuInflater(); inflater.inflate(R.menu.actions, popup.getMenu()); popup.show(); }
Para más información, lea Creating a Popup Menu
: http://developer.android.com/guide/topics/ui/menus.html
Agregue una barra de herramientas al diseño y haga transparente. Esa es la mejor solución para agregar elementos de menú a un diseño mientras se da la apariencia no hay barra de acción / barra de herramientas.
Diseño
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- The rest of your code here --> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="56dp" android:background="@android:color/transparent"/> </RelativeLayout>
Tema
<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> </style> </resources>
Ejemplo de inflar el menú, establecer el título, escuchar el botón de menú.
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); toolbar.setTitle("Toolbar"); toolbar.inflateMenu(R.menu.menu_main); toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { if (item.getItemId() == R.id.action_refresh) { } return false; } });
No establezca la barra de herramientas como barra de acción. El tema lo elimina totalmente.
No creo que puedas agregar un menú sin barra de acción. Pero, hay dos enfoques que puedo pensar en off.
-
Crear y barra de Acción del mismo color que el del fondo para que no se muestre, a continuación, agregar los menús.
-
Simplemente agregue un botón en la esquina superior derecha de la pantalla y coloque el menú desplegable en el diseño.
O utilice un menú emergente según lo sugerido por @MY
<ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_overflow_holo_dark" android:contentDescription="@string/descr_overflow_button" android:onClick="showPopup" />
Agregue las líneas de arriba en el archivo xml donde desea mostrar este menú.
public void showMenu(View v) { PopupMenu popup = new PopupMenu(this, v); // This activity implements OnMenuItemClickListener popup.setOnMenuItemClickListener(this); popup.inflate(R.menu.actions); popup.show(); } @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.archive: archive(item); return true; case R.id.delete: delete(item); return true; default: return false; } }
Para más detalles, consulte: https://developer.android.com/guide/topics/ui/menus.html