14

Quiero crear un botón con el menú desplegable, como el botón de menú de desbordamiento en ActionBar en ICS. Tengo un problema porque PopupMenu no está en Android 2.x. La segunda forma de usar Spinner pero no es para mí, porque Spinner siempre muestra el primer artículo en mi fondo personalizado o mi artículo seleccionado. ¿Cómo puedo lograrlo? En general, quiero ContextMenu pero poco y en posición de vista cliqueada. Gracias.La mejor manera de crear menú desplegable en Android 2.x como en ICS

Parece que este: Overflow menu in right top corner

Respuesta

11

Si su propósito es recrear una barra de acción, puede echarle un vistazo al proyecto ActionBarSherlock, que respalda esas funcionalidades.

Si desea poder mostrar dicho menú en cualquier lugar de su aplicación, puede leer la implementación de la implementación de la clase MenuPopupHelper en el código fuente del proyecto ActionBarSherlock.

+0

Ok. Creo que la mejor respuesta es tu. Pero decidí usar solo el menú contextual porque no veo una forma simple de usar popupMenu. –

1

Una alternativa a su requerimiento podría ser, que se crea una vista de lista ,, colocarlo debajo de su botón de & establece que es la visibilidad que por defecto invisibles & cuando se hace clic en el botón, se puede alternar la visibilidad de la vista de lista .... por ejemplo

button.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       if (LISTVIEW.isShown()) { 
        LISTVIEW.setVisibility(View.INVISIBLE); 
       } else { 
        LISTVIEW.setVisibility(View.VISIBLE); 
       } 

que me haga saber si esto ayuda ...

+0

Esa es una excelente manera de hacerlo. ¿Puedes controlar dónde se coloca el ListView? – Andy

+0

Puede colocarlo donde desee, pero supongo que necesitará codificar sus dimensiones. –

3

Uso PopupWindow para ese tipo de cosas. Es más trabajo que PopupMenu, donde solo le das un menú y respondes a los eventos con OnMenuItemClickListener.onMenuItemClick(). Con PopupWindow, usted proporciona una Vista de contenido y maneja los clics en un nivel algo inferior.

Aún así, hace el trabajo sin demasiados problemas. El método showAsDropDown() le permite anclar la ventana emergente a otra Vista (colóquela apropiadamente como un menú desplegable o emergente), tal como lo desea. Ha estado presente desde API nivel 1 y funciona muy bien para mí en todos mis dispositivos de prueba.

Cuestiones relacionadas