众所周知,PopupMenu非常不受定制,所以我将我的一个PopupMenus切换到ListWindowMenu。后者允许您使用自己的适配器和布局。
我的问题是我需要重新创建PopupMenu的大小,但我不确定如何检索它。没有定义布局,似乎以某种方式确定了自身的大小。我看了一下PopupMenu和Menu,但我找不到它们的大小以及如何获得尺寸。
有谁知道 1)如何获得弹出菜单的尺寸 2)这些android小部件如何调整自己的大小?
答案 0 :(得分:2)
PopupMenu
实际上是ListPopupWindow
,其中包含DropDownListView
。
DropDownListView
是ListView
的孩子,所以他有一个适配器。
如您所知,每个适配器都有getView()
方法,该方法会显示每个项目的资源。
所以,你的回答是:
height = com.android.internal.R.layout.popup_menu_item_layout * items_count.
width = dynamically measured value but it can not be bigger than :
Math.max(res.getDisplayMetrics()。widthPixels / 2,res.getDimensionPixelSize(com.android.internal.R.dimen.config_prefDialogWidth));
您可以看到here的测量逻辑。