【发布时间】:2021-07-17 19:51:58
【问题描述】:
我正在使用默认的弹出菜单并期待相同的行为。一切正常。我关心的是弹出菜单的渲染。我的弹出菜单粘在屏幕右侧。
我想要 Youtube 应用程序用于 android 的行为。
我主要无法为弹出菜单提供右边距。请帮忙。 我尝试为弹出菜单提供重力。但是弹出菜单粘在屏幕右侧。
PopupMenu popupMenu = new PopupMenu(mContext, anchor, Gravity.LEFT);
popupMenu.getMenuInflater().inflate(R.menu.menu_edit_accessory, popupMenu.getMenu());
【问题讨论】:
-
基本上,它不是粘在屏幕的右边,而是粘在你在构造函数中设置为锚的锚视图上。我不知道 Youtube 如何呈现 PopupMenus,但您可以尝试使用不同的锚点,即设置一个不可见的视图只是为了将您的 PopupMenu 附加到它。
-
我也试过了。但它仍然坚持向右。我已尝试创建假锚视图,但行为仍然相同。
-
哦,你是对的,我只是自己确认了。不确定 YouTube 是否这样做,但我建议尝试使用
PopupWindow而不是PopupMenu。PopupWindow更好地锚定在视图上,但你必须自己布置它