Если вы пытаетесь отобразить раскрывающееся меню при нажатии ImageButton (или любого другого Вид ), попробуйте следующее:
final ImageButton imageButton = // get your ImageButton from the XML here
final PopupMenu dropDownMenu = new PopupMenu(getContext(), imageButton);
final Menu menu = dropDownMenu.getMenu();
// add your items:
menu.add(0, 0, 0, "An item");
menu.add(0, 1, 0, "Another item");
// OR inflate your menu from an XML:
dropDownMenu.getMenuInflater().inflate(R.menu.some_menu, menu);
dropDownMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case 0:
// item ID 0 was clicked
return true;
case 1:
// item ID 1 was clicked
return true;
}
return false;
}
});
imageButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dropDownMenu.show();
}
});
// if you want to be able to open the menu by dragging on the button:
imageButton.setOnTouchListener(dropDownMenu.getDragToOpenListener());
Когда Android Studio просит импортировать PopupMenu, вы можете увидеть два варианта:
- android.support.v7.widget.PopupMenu это лучший вариант, он гарантирует, что ваше меню будет работать в любой версии Android
- android.widget.PopupMenu этот работает только на Android 2.1 и выше, что, вероятно, хорошо. Однако, если новые версии Android поставляются с новыми функциями в PopupMenu , первый вариант также может позволить вам использовать эти новые функции в более старых версиях Android.