2015-12-15 101 views
3
intial view on tapping share icon ,popup covers the toolbar content on tapping see all option in popup, it shows properly below the toolbar

我已经添加了shareActionProvider的工具栏我的问题只要我点击共享图标弹出菜单将覆盖工具栏的内容,但当我点击查看全部选项在弹出式菜单下列出,弹出式菜单将在工具栏下方完全解决。我如何可以将工具栏,而不是溢出菜单下溢出菜单重叠工具栏

我的要求是,只要我点击共享图标我的弹出菜单应填充下方的工具栏不是我选择后看到所有选项。

menu.xml文件

<item 
    android:id="@+id/menu_item_share" 
    app:showAsAction="always" 
    android:title="Share" 
    android:icon="@drawable/abc_ic_menu_share_mtrl_alpha"/> 

Java代码

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    MenuItem item = menu.findItem(R.id.menu_item_share); 

    mShareActionProvider = new ShareActionProvider(getActivity()) { 
     @Override 
     public View onCreateActionView() { 
      return null; 
     } 
    }; 

    MenuItemCompat.setActionProvider(item, mShareActionProvider); 

    if (mShareActionProvider != null) { 
     mShareActionProvider.setShareIntent(createShareIntent()); 
    } 
} 

style.xml

<style name="AppTheme.Base" parent="Theme.AppCompat.Light"> 
    <item name="actionOverflowMenuStyle">@style/PopupMenu</item> 
</style> 
<style name="PopupMenu" parent="Widget.AppCompat.PopupMenu.Overflow"> 
    <item name="android:popupBackground">@color/colorPrimary</item> 

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

回答

5

按照Material Design specifications(请参阅菜单部分):

菜单是一种临时性纸张,它总是与应用程序栏重叠,而不是作为应用程序栏的扩展。

Menu overlap app bar

所以你看到的是正确的材质设计菜单。


要改变它在你的主风格采用<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> 

对于棒棒堂风格必须是values-v21