Red de conocimiento del abogados - Bufete de abogados - Cómo implementar el menú superior deslizante más bonito de Android

Cómo implementar el menú superior deslizante más bonito de Android

El menú es uno de los elementos más comunes en la interfaz de usuario y se utiliza con mucha frecuencia. En Android, los menús se dividen en tres tipos: menú de opciones (OptionsMenu), menú contextual (ContextMenu) y submenú (. SubMenu), lo siguiente trata sobre la creación de OptionsMenu

1. Descripción general

onCreateOptionsMenu público booleano (menú de menú): use este método para llamar a OptionsMenu.

public boolean onOptionsItemSelected(MenuItem item): Acción que ocurre después de seleccionar el elemento del menú.

public void onOptionsMenuClosed(Menú menú): Acción que ocurre después de cerrar el menú.

onPrepareOptionsMenu público booleano (menú de menú): el método onPrepareOptionsMenu se llamará antes de que se muestre el menú de opciones. Puede utilizar este método para ajustar el menú según la situación en ese momento.

public boolean onMenuOpened(int featureId, Menu menu): Acción que ocurre después de abrir el menú.

2. Estilo predeterminado

El estilo predeterminado es mostrar un menú emergente en la parte inferior de la pantalla. A este menú lo llamamos Menú de opciones. En circunstancias normales, el menú de opciones muestra hasta. 2 filas por fila. 3 elementos de menú. Estos elementos de menú tienen texto e íconos. También se denominan menús de íconos. Si hay más de 6 elementos, se ocultarán a partir del sexto elemento. Haga clic en Más para que aparezcan seis elementos de menú y más, estos elementos de menú también se denominan menús ampliados. Presentado a continuación.

1.main.xml

lt;?xml?version="1.0"?encoding="utf-8"?gt;

lt;LinearLayout ?xmlns:android="/apk/res/android"

android:orientation="vertical"?android:layout_width="fill_parent"

android:layout_height="fill_parent"? gt;

lt;TextView?android:layout_width="wrap_content"

android:layout_height="wrap_content"?android:text="Haga clic en la tecla ?Menú para mostrar las opciones menú"

android:id="@ id/TextView02"?/gt;

lt;/LinearLayoutgt;

 2. Sobrecargue el método onCreateOptionsMenu (menú menú)

Sobrecargue el método onCreateOptionsMenu (menú menú), agregue elementos de menú en este método y finalmente devuelva verdadero. Si es falso, el menú no se mostrará.

public?boolean?onCreateOptionsMenu(Menú?menu)

@Override

public?boolean?onCreateOptionsMenu(Menú?menu)?{

/* *? *? Los cuatro parámetros del método add() son: *? *?1 Grupo, si no está agrupado, escriba Menu.NONE, *? *?2. determina diferentes menús en función de este Id *? *? 3. El orden, qué menú está ahora al frente está determinado por el tamaño de este parámetro *? *? p> menu.add(Menu.NONE,?Menu.FIRST?1,?5,?"Delete").setIcon(

android.R.drawable.ic_menu_delete);

El método //?setIcon() establece el ícono para el menú. Aquí se utilizan los íconos que vienen con el sistema. Tenga en cuenta que los recursos que comienzan con

//?android.R. system Nosotros Los recursos que usted proporciona comienzan con R

menu.add(Menu.NONE,?Menu.FIRST??2,?2,?"Save").setIcon(

android.R.drawable.ic_menu_edit);

menu.add(Menu.NONE,?Menu.FIRST??3,?6,?"Ayuda").setIcon(

android.R.drawable.ic_menu_help);

menu.add(Menu.NONE,?Menu.FIRST??4,?1,?"Add").setIcon(

android.R.drawable.ic_menu_add);

menu.add(Menu.NONE,?Menu.FIRST?5,?4,?"Detalles").setIcon(

android.R.drawable.ic_menu_info_details);

menu.add(Menu.NONE,?Menu.FIRST??6,?3,?"Enviar").setIcon(

android.R.drawable.ic_menu_send);

return?true;

}

3.

Registrar eventos para elementos del menú

Utilice el método onOptionsItemSelected(MenuItem item) para registrar eventos para elementos del menú

public?boolean?onOptionsItemSelected(MenuItem?item)

@Override

public?boolean?onOptionsItemSelected(MenuItem?item)?{

¿cambiar?(item.getItemId())?{

caso?Menú. ¿PRIMERO?1:

Toast.makeText(this,?"Se hizo clic en el menú de eliminación",?Toast.LENGTH_LONG).show();

romper;

case?Menu.FIRST? ?2:

Toast.makeText(this,?"Se hizo clic en el menú Guardar",?Toast.LENGTH_LONG).show();

romper ;

case?Menu.FIRST? ?3:

Toast.makeText(this,?"Se hizo clic en el menú de ayuda",?Toast.LENGTH_LONG).show() ;

romper;

caso?Menu.FIRST? ?4:

Toast.makeText(this, "Se hizo clic en Agregar menú",? Toast. LENGTH_LONG ).show();

break;

case?Menu.FIRST?5:

Toast.makeText(this,?"El menú detallado se hace clic en ",?Toast.LENGTH_LONG).show();

romper;

caso?Menu.FIRST? ?6:

Toast.makeText( this ,?"Se hizo clic en el menú Enviar",?Toast.LENGTH_LONG).show();

break;

}

return?false;

p>

}

4. Código completo

paquete?com.android.menu;

importar?android.app. Actividad;

importar?android.os.Bundle;

importar?android.view.Menu;

importar?android.view.MenuItem;

importar ?android.widget.Toast;

¿clase?pública?Menú predeterminado?extiende?Actividad?{

/**?Se llama?cuando?la?actividad?es ?primero?creado.

setContentView(R.layout.main);

}

@Override<

/p>

public?boolean?onCreateOptionsMenu(Menu?menu)?{

/* *? *?Los cuatro parámetros del método add() son: *? Grupo De lo contrario. , si no está agrupado, escriba Menu.NONE, *? *? 2. Id., esto es muy importante, Android determina diferentes menús según este Id. *? *? determina *? *? 4. Texto, el texto mostrado del menú */

menu.add(Menu.NONE,?Menu.FIRST??1,?5,?"Delete").setIcon (

android.R.drawable.ic_menu_delete);

//El método setIcon() establece el ícono para el menú. Aquí se utiliza el ícono propio del sistema. Los recursos que comienzan con

//?android.R los proporciona el sistema, y ​​los recursos que nosotros mismos proporcionamos comienzan con R

menu.add(Menu.NONE,?Menu. ¿PRIMERO?2,?2,?"Guardar").setIcon(

android.R.drawable.ic_menu_edit);

menu.add(Menu.NONE,?Menu. ¿PRIMERO?3,?6,?"Ayuda").setIcon(

android.R.drawable.ic_menu_help);

menu.add(Menu.NONE,?Menu. ¿PRIMERO?4,?1,?"add").setIcon(

android.R.drawable.ic_menu_add);

menu.add(Menu.NONE,?Menu. ¿PRIMERO?5,?4,?"Detalles").setIcon(

android.R.drawable.ic_menu_info_details);

menu.add(Menu.NONE,?Menu. ¿PRIMERO?6,?3,?"enviar").setIcon(

android.R.drawable.ic_menu_send);

return?true;

}

@Override

¿público?boolean?onOptionsItemSelected(MenuItem?item)?{

¿cambiar?(item.getItemId())?{

case?Menu.FIRST? ?1:

Toast.makeText(this,?"Se hizo clic en Eliminar menú",?Toast.LENGTH_LONG).show();

romper;

case?Menu.FIRST? ?2:

Toast.makeText(this,?"Se hizo clic en el menú Guardar",?Toast.LENGTH_LONG).show() ;

romper;

case?Menu.FIRST?3:

Toast.makeText(this, "Se hizo clic en el menú de ayuda",? Toast .LENGTH_LONG).show();

romper;

caso?Menú.FIRST?

?4:

Toast.makeText(this,?"Se hizo clic en Agregar menú",?Toast.LENGTH_LONG).show();

romper;

case?Menu.FIRST? 5:

Toast.makeText(this,?"Se hizo clic en el menú detallado",?Toast.LENGTH_LONG).show();

break ;

caso?Menu.FIRST??6:

Toast.makeText(this,?"Se hizo clic en el menú Enviar",?Toast.LENGTH_LONG).show();

romper;

}

return?false;

}

@Override

¿público? void?onOptionsMenuClosed(Menu?menu)?{

Toast.makeText(this,?"El menú de opciones está cerrado",?Toast.LENGTH_LONG).show();

}

@Override

public?boolean?onPrepareOptionsMenu(¿Menú?menú)?{

Toast.makeText(this,

"El Se llamará al método onPrepareOptionsMenu antes de que se muestre el menú de opciones. Puede utilizar este método para ajustar el menú según la situación en ese momento",

Toast.LENGTH_LONG).show();

/ /?Si se devuelve false, este método consumirá la acción del usuario de hacer clic en el menú y no se llamará al método onCreateOptionsMenu

return?true;

}

}

5. Efecto de la operación