Android PopupWindow showAsDropDown()无法正常工作

时间:2012-10-29 03:04:21

标签: android popupwindow

我正在使用PopupWindow和showAsDropDown(锚)。当锚点位于屏幕顶部时,它可以正常工作,但是当屏幕底部没有显示任何内容时。根据PopupWindow.showAsDropDown()的文档,这应该工作:

http://developer.android.com/reference/android/widget/PopupWindow.html#showAsDropDown%28android.view.View%29

“在锚定到锚点视图左下角的弹出窗口中显示内容视图。如果屏幕上没有足够的空间来完整显示弹出窗口,则此方法会尝试查找父卷轴视图滚动。如果没有滚动父滚动视图,则弹出窗口的左下角固定在锚点视图的左上角。“

据推测,弹出窗口始终锚定在锚点视图的左下角。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:4)

你可以试试这个......可能有帮助

mWindow.showAtLocation(mRootView, Gravity.BOTTOM|Gravity.LEFT, 0, distanceFromTop);

答案 1 :(得分:0)

我知道这是一个旧线程,但是我认为我应该发布解决方案。看来您必须在调用showAsDropDown()之前显式设置popupWindow的宽度和高度

    menuLayout.measure( View.MeasureSpec.UNSPECIFIED, 
                        View.MeasureSpec.UNSPECIFIED );
    int height = menuLayout.getMeasuredHeight();
    int width = menuLayout.getMeasuredWidth();
    popupMenu.setWidth( width );
    popupMenu.setHeight( height );

    popupMenu.showAsDropDown( clickedCell );

在这种情况下,menuLayout是显示在popupWindow中的视图。