我的问题是我如何将菜单下拉菜单移动到粉红色区域的空间(见第二张图片)。如果现在它也出现在Action Bar区域,我也不想要。我想要我的菜单显示在操作栏下方。
请各位帮我解决这个问题。
这就是菜单的来源。
我希望我的菜单显示在操作栏的下方。
这就是我的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>
答案 0 :(得分:4)
实际上ActionBar
菜单应该显示在操作栏的顶部。
来自Documentation
菜单是一张临时的纸张,总是与应用栏重叠, 而不是表现为应用栏的扩展。
如果你仍然想要这种行为,你可以使用它。但它不推荐。
<style name="OverflowMenu" parent="Widget.AppCompat.PopupMenu.Overflow" >
<item name="overlapAnchor">false</item>
<item name="dropDownVerticalOffset">?attr/actionBarSize</item>
</style>
检查此答案Why is my overflow dropdown menu on top of the actionbar?
如果您想在ToolBar
在menu.xml
xmlns:app="http://schemas.android.com/apk/res-auto"
并在您的menuitems中添加此行
app:showAsAction="always"
答案 1 :(得分:0)
我们可以在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;
}
答案 2 :(得分:0)
我认为这是正确的
ptr
答案 3 :(得分:0)
转到res => values =>样式,然后添加我在下面的注释中指出的这两行。它将对您有帮助
<!-- 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>