Android 如何使我的菜单显示在操作栏区域下方

Android 如何使我的菜单显示在操作栏区域下方,android,android-layout,android-activity,Android,Android Layout,Android Activity,我的问题是如何将我的菜单下拉列表移动到带有粉色区域的空间(参见第二幅图)。就好像现在它也出现在我不想要的操作栏区域中一样。我希望我的菜单显示在操作栏的正下方 请大家帮我解决这个问题 菜单就是这样来的 我希望我的菜单显示在操作栏的正下方 这就是我的menu.xml的样子 <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/t

我的问题是如何将我的菜单下拉列表移动到带有粉色区域的空间(参见第二幅图)。就好像现在它也出现在我不想要的操作栏区域中一样。我希望我的菜单显示在操作栏的正下方

请大家帮我解决这个问题

菜单就是这样来的

我希望我的菜单显示在操作栏的正下方

这就是我的menu.xml的样子

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context="com.example.mobileinventorysuit.MainActivity" >

    <item
        android:id="@+id/login_mnu_imports"
        android:icon="@drawable/import_menu"
        app:showAsAction="always"
        style="@style/OverflowMenu"
        android:title="Import"/> 
   <item
        android:id="@+id/login_mnu_settings"
        android:icon="@drawable/settings_menu"
        style="@style/OverflowMenu"
        app:showAsAction="always"
        android:title="Settings"/>
     <item
        android:id="@+id/login_mnu_dev"
        android:icon="@drawable/dev"
        style="@style/OverflowMenu"
        app:showAsAction="always"
        android:title="Device Info"/>
    <item
        android:id="@+id/login_mnu_exit"
        style="@style/OverflowMenu"
        app:showAsAction="always"
        android:icon="@drawable/ic_lock_power_off"
        android:title="Exit"/>


</menu>

实际上,
操作栏
菜单应该显示在操作栏的顶部。 从

菜单是一张始终与应用程序栏重叠的临时纸张, 而不是作为应用程序栏的扩展

如果你仍然想要这种行为,你可以用这个。但这并不推荐

<style name="OverflowMenu" parent="Widget.AppCompat.PopupMenu.Overflow" >
         <item name="overlapAnchor">false</item>
         <item name="dropDownVerticalOffset">?attr/actionBarSize</item>
</style>
并将这一行添加到菜单项中

 app:showAsAction="always"

我们可以在
PopUpWindow
中使用此选项:

   mWindow.showAsDropDown(anchor, getScreenWidth((Activity) mContext) - getPixelFromDp(mContext, 465), getPixelFromDp(mContext, 0));

  public static int getScreenWidth(Activity context){
     Display display = context.getWindowManager().getDefaultDisplay();
     return display.getWidth();
  }

   public static int getPixelFromDp(Context context, int dpUnits) {
      float pixel = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpUnits, getDisplayMetrics(context));
      return (int) pixel;
 }

我认为这是正确的

  <item name="overlapAnchor">false</item>
    <item name="android:dropDownVerticalOffset">?attr/actionBarSize</item>
false
?属性/操作栏大小

转到res=>values=>styles并添加我在下面的评论中指出的那两行。这将对您有所帮助

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

     //add these two line scripts and it will work properly

    <item name="overlapAnchor">false</item>
    <item name="android:dropDownVerticalOffset">?attr/actionBarSize</item>
</style>


@颜色/原色
@颜色/原色暗
@颜色/颜色重音
//添加这两行脚本,它将正常工作
假的
?属性/操作栏大小

您可以从菜单中创建新的xml布局。然后可以将该布局包含在currnet主xml中。首先将其设置为隐藏。单击显示菜单的视图后,添加按钮或任何图像视图adn。我已经做了很多项目。你能不能给我发一些链接或参考资料,因为我是一个新的小蜜蜂…这将对我有帮助@Raj Sharmathis链接会很有帮助您提到的参考资料澄清了我的所有疑问…谢谢我也尝试在我的菜单中显示图标,但没有出现…你知道为什么吗?@BossI尝试过,但在menuItem@Bossy之前我看不到任何图标你想要一个带有菜单项的图标,或者只是在操作栏中的图标??在菜单项之前@波什:我来吧!一般不接受仅限代码的答案。始终尝试解释您的解决方案,以及为什么这会给当前的答案增加一些内容。
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

     //add these two line scripts and it will work properly

    <item name="overlapAnchor">false</item>
    <item name="android:dropDownVerticalOffset">?attr/actionBarSize</item>
</style>