【问题标题】:Android PopupWindow showAtLocation above buttonAndroid PopupWindow showAtLocation 按钮上方
【发布时间】:2017-08-24 07:42:20
【问题描述】:

我试图在 Button 的正上方显示 PopupWindow - 以便 PopupWindow 的底部边缘与 Button 的顶部边缘对齐。我已经尝试过各种 Gravity 和 getHeight 的可能性,但一直无法做到正确。

我原以为将重力设置为底部 - 将 PopupWindow 与底部对齐,然后将其向上推按钮的高度会起作用:

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

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

【问题讨论】:

    标签: android user-interface popupwindow gravity


    【解决方案1】:

    试试这个;

    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,还是有其他技巧?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多