2015-04-04 2 views
5

Я знаю, что это руководство по материалам, но мне оно не нравится, и я хочу, чтобы оно было ниже панели инструментов. предоставьте некоторую информацию, чтобы настроить положение меню переполнения.Как я могу разместить меню переполнения под панелью инструментов вместо меню переполнения, чтобы перекрывать панель приложения

ответ

24

В вашем основном стиле использовании <item name="actionOverflowMenuStyle">@style/OverflowMenu</item>, где

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

Для стиля леденца должен быть в значениях-v21.

+1

спасибо большое. ты спас мой день. – DroidDev

+1

выше решение не работает для меня. Вы можете дать мне решение по этой ссылке. http://stackoverflow.com/questions/34738893/how-to-show-menu-popup-exact-below-actionbar?noredirect=1#comment57223525_34738893 – Vasant

0

С приведенным выше решением у меня возникла проблема с тем, что фон элемента меню был прозрачным, а также он блокировал каждое действие в окне, пока я не нажму на элемент меню. Для тех, у кого есть моя проблема, я предлагаю добавить всплывающее меню в пункт меню. Например, у меня есть этот пункт в моем menu.xml:

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

Затем на моем OnOptionsItemsSelected метода (после раздувания моего меню к деятельности):

@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); 
} 

С помощью этого решения, вариантов меню всегда отображаются под щелчком пункта меню. Если у вас есть вопросы, просто спросите меня!

Смежные вопросы