如何通过Android确定PopupMenu小部件的尺寸?

时间:2015-11-20 19:59:59

标签: android popupmenu

众所周知,PopupMenu非常不受定制,所以我将我的一个PopupMenus切换到ListWindowMenu。后者允许您使用自己的适配器和布局。

我的问题是我需要重新创建PopupMenu的大小,但我不确定如何检索它。没有定义布局,似乎以某种方式确定了自身的大小。我看了一下PopupMenu和Menu,但我找不到它们的大小以及如何获得尺寸。

有谁知道 1)如何获得弹出菜单的尺寸 2)这些android小部件如何调整自己的大小?

1 个答案:

答案 0 :(得分:2)

低级别的

PopupMenu实际上是ListPopupWindow,其中包含DropDownListView

DropDownListViewListView的孩子,所以他有一个适配器

如您所知,每个适配器都有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的测量逻辑。