Android PopupWindow showAtLocation上面的按钮
问题描述:
我试图显示一个PopupWindow正上方的按钮 - 以便PopupWindow的底部边缘与按钮的顶部边缘对齐。我玩过各种Gravity和getHeight的可能性,但一直无法做到。Android PopupWindow showAtLocation上面的按钮
我本来以为设置重力底部 - 对准PopupWindow的底部,然后向上推按按钮的高度将工作:
popupWindow.showAtLocation(view, Gravity.LEFT|Gravity.BOTTOM, 0, button.getHeight());
但它只是提出了PopupWindow一小部分在屏幕的底部,覆盖大部分按钮。
答
试试这个;
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);
我不确定此代码如何帮助与PopupMenu相对于按钮的位置。它似乎只是在弹出的时候创建一个不错的动画。你想让我使用showAtLocation,还是有其他一些技巧吗? –