众所周知,PopupMenu非常不适合自定义,所以我将我的PopupMenus之一转换为ListWindowMenu。后者允许您使用自己的适配器和布局。
我的问题是我需要重新创建PopupMenu的大小,但我不知道如何检索它。没有定义布局,而且它似乎在某种程度上调整了自己的大小。我看了一下PopupMenu和菜单,但是我找不到它们自己的大小,也找不到尺寸。
有人知道如何获取弹出菜单的尺寸吗?( 2)这些android小部件是如何调整自身大小的?
发布于 2015-11-20 20:31:13
低级别的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 :res.getDimensionPixelSize(com.android.internal.R.dimen.config_prefDialogWidth));Math.max(res.getDisplayMetrics().widthPixels / 2 )
度量逻辑您可以看到这里。
https://stackoverflow.com/questions/33835114
复制相似问题