Android 如何使我的菜单显示在操作栏区域下方
我的问题是如何将我的菜单下拉列表移动到带有粉色区域的空间(参见第二幅图)。就好像现在它也出现在我不想要的操作栏区域中一样。我希望我的菜单显示在操作栏的正下方 请大家帮我解决这个问题 菜单就是这样来的 我希望我的菜单显示在操作栏的正下方 这就是我的menu.xml的样子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 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>