Android action bar menu item with actionLayout not working properly

后端 未结 4 1106
野趣味
野趣味 2021-02-05 03:19

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

<         


        
4条回答
  •  悲哀的现实
    2021-02-05 04:14

    Accepted answer didn't work for me. My submenu behaved different on different devices. On Motorola Moto X it was like this: enter image description here

    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 :)

提交回复
热议问题