ejemplo - onlongclick android
Android PopupMenu setGravity(API<19) (2)
En Android API 19 se agregó el contructor de PopupMenu que permite especificar la gravedad.
público PopupMenu (Contexto contextual, Ver ancla, int gravedad)
¿Cómo puedo establecer la gravedad en versiones anteriores?
puede usar rtl para dar gravedad a la derecha aquí es el enlace
RTL comenzó a ser compatible con Android 4.2
o puede crear un menú emergente personalizado e inflarlo.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
popup = new PopupMenu(context, arg1,Gravity.CENTER );
//popupWindow.showAtLocation(anchor, Gravity.NO_GRAVITY, xPos, yPos);
}
//Inflating the Popup using xml file
popup.getMenuInflater().inflate(R.menu.listmenu, popup.getMenu());
o puedes dar anclaje y estilo
showPopup(viewOfWherePopupmenuShows,popmenuNameList.size());
PopupMenu popMenu = new PopupMenu(Activity.this,v)
int size =popmenuNameList.size();
for(int i =0; i <size; i++){
popMenu.getMenu().add(popmenuNameList.get(i)).setIcon(R.drawable.logo);
}
popMenu.show();
protected void showPopupMenu(View v, int size){
//create instance
PopupMenu popup = new PopupMenu(Activity.this,v);
//inflating the popup using xml
popup.getMenuInflater().inflate(R.menu.menu_popup_list),popup.getMenu());
}
El estilo del menú está determinado por el estilo del contexto que pasa. Entonces, todo lo que necesita hacer es pasar su referencia de Actividad como contexto
estilo aquí;
<style name="style" parent="android:Theme.Holo.Light">
<item name="android:popupMenuStyle">...</item>
<item name="android:popupAnimationStyle">...</item>
<item name="android:popupBackground">...</item>
</style>
Cambiar import android.widget.PopupMenu;
línea import android.widget.PopupMenu;
para importar android.support.v7.widget.PopupMenu;