7

I know that it is per material guideline, but i don't like it and i want it to below toolbar. please provide some info to adjust position of overflow menu.

2 Answers 2

35

In your main style use <item name="actionOverflowMenuStyle">@style/OverflowMenu</item>, where

<style name="OverflowMenu" parent="Widget.AppCompat.PopupMenu.Overflow">
  <!-- Required for pre-Lollipop. -->
   <item name="overlapAnchor">false</item>
   <item name="android:dropDownVerticalOffset">-4.0dip</item>
  <!-- Required for Lollipop. -->
   <item name="android:overlapAnchor">false</item>
   <item name="android:dropDownVerticalOffset">4.0dip</item>
</style>

For Lollipop style must be in values-v21.

Sign up to request clarification or add additional context in comments.

1 Comment

above solution isn't work for me.can you give me solution for this link. stackoverflow.com/questions/34738893/…
0

With the above solution I had the problem that the menu item background was transparent and also It was kind of blocking every action on the window until I click the menu item. For the ones having my problem I suggest adding a popup menu to the menu item. For example, I have this item on my menu.xml:

<item
    android:id="@+id/new_work_report"
    android:icon="@drawable/ic_add_white"
    android:title="@string/action_settings"
    app:showAsAction="ifRoom"/>

Then, on my OnOptionsItemsSelected method (after inflating my menu to the activity):

@Override
public boolean onOptionsItemSelected(MenuItem menuItem)
{
    switch (menuItem.getItemId())
    {
        case android.R.id.home:
            finish();
            break;

        case R.id.new_work_report:
            View itemView = FieldSheetActivity.this.findViewById(R.id.new_work_report);
            PopupMenu popMenu = new PopupMenu(MyActivity.this, itemView);
            popMenu.getMenu().add("Do something");

            popMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener()
            {

                @Override
                public boolean onMenuItemClick(MenuItem item)
                {
                    // Your desired action

                    return true;
                }
            });
            popMenu.show();
            break;
    }

    return super.onOptionsItemSelected(menuItem);
}

With this solution, the menu options always are shown below the clicked menu item. In case you have any questions, just ask me!

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.