Hi I am developing an Android application. In my application I am using Sherlock action. I\'ve defined few menu items in action-bar like in following manner
<
Accepted answer didn't work for me.
My submenu behaved different on different devices.
On Motorola Moto X it was like this:
You can see that sub-menu is in wrong position (I clicked on bubble icon on the right of ActionBar).
So at the end I came up with different solution: use PopupMenu instead. Code looks like this:
@Override
public void onCreateOptionsMenu(final Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu_fragment_chat, menu);
final MenuItem item = menu.findItem(R.id.menu_item_actionbar_avatar);
MenuItemCompat.getActionView(item).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showProfileMenuPopup(v);
}
});
}
public void showProfileMenuPopup(View v) {
PopupMenu popup = new PopupMenu(getActivity(), v);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.menu.menu_avatar_actions, popup.getMenu());
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem menuItem) {
return false;
}
});
popup.show();
}
And it worked :)