2017-08-24 105 views
0

我试图显示一个PopupWindow正上方的按钮 - 以便PopupWindow的底部边缘与按钮的顶部边缘对齐。我玩过各种Gravity和getHeight的可能性,但一直无法做到。Android PopupWindow showAtLocation上面的按钮

我本来以为设置重力底部 - 对准PopupWindow的底部,然后向上推按按钮的高度将工作:

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

但它只是提出了PopupWindow一小部分在屏幕的底部,覆盖大部分按钮。

回答

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); 
+0

我不确定此代码如何帮助与PopupMenu相对于按钮的位置。它似乎只是在弹出的时候创建一个不错的动画。你想让我使用showAtLocation,还是有其他一些技巧吗? –