Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将溢出菜单放置在工具栏下方而不是溢出菜单以重叠应用程序栏_Android_Android Layout_Android Toolbar - Fatal编程技术网

Android 如何将溢出菜单放置在工具栏下方而不是溢出菜单以重叠应用程序栏

Android 如何将溢出菜单放置在工具栏下方而不是溢出菜单以重叠应用程序栏,android,android-layout,android-toolbar,Android,Android Layout,Android Toolbar,我知道这是根据材料指南,但我不喜欢它,我希望它在工具栏下面。请提供一些信息来调整溢出菜单的位置 在主样式中使用@style/OverflowMenu,其中 <style name="OverflowMenu" parent="Widget.AppCompat.PopupMenu.Overflow"> <!-- Required for pre-Lollipop. --> <item name="overlapAnchor">false</ite

我知道这是根据材料指南,但我不喜欢它,我希望它在工具栏下面。请提供一些信息来调整溢出菜单的位置

在主样式中使用
@style/OverflowMenu
,其中

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

假的
-4.0dip
假的
4.0dip

对于棒棒糖,样式必须在values-v21中。

使用上述解决方案时,我遇到了一个问题,即菜单项背景是透明的,并且在单击菜单项之前,它会阻止窗口上的每个操作。对于那些有我的问题,我建议添加一个弹出菜单的菜单项。例如,我的menu.xml上有以下项目:

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

使用此解决方案,菜单选项始终显示在单击的菜单项下方。如果你有任何问题,就问我

上面的解决方案不适合我。你能给我这个链接的解决方案吗。
@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);
}