Android PopupWindow showAtLocation上面的按钮

时间:2017-08-24 07:42:20

标签: android user-interface popupwindow gravity

我试图在Button上方显示一个PopupWindow - 这样PopupWindow的下边缘与Button的上边缘对齐。我玩过各种Gravity和getHeight的可能性,但一直都无法做到。

我原以为将引力设置为Bottom - 将PopupWindow对齐到底部,然后按钮的高度向上推动它将起作用:

popupWindow.showAtLocation(view, Gravity.LEFT|Gravity.BOTTOM, 0, button.getHeight());

但它只会将PopupWindow从屏幕底部提升一小部分,覆盖大部分按钮。

1 个答案:

答案 0 :(得分:0)

试试这个;

<强> R.style.PopupMenu

  <style name="PopupMenu" parent="Widget.AppCompat.PopupMenu.Overflow">
    <item name="android:itemTextAppearance">@color/red</item>
    <item name="android:dropDownVerticalOffset">25dp</item>
    <item name="android:listPreferredItemHeightSmall">42dp</item>
    <item name="android:dropDownHorizontalOffset">16dp</item>
 </style>

并将此样式应用于java代码中的PopupMenu;

 Context wrapper = new ContextThemeWrapper(getContext(), R.style.PopupMenu);
 final PopupMenu popupMenu = new PopupMenu(wrapper, v);