我正在使用PopupWindow和showAsDropDown(锚)。当锚点位于屏幕顶部时,它可以正常工作,但是当屏幕底部没有显示任何内容时。根据PopupWindow.showAsDropDown()的文档,这应该工作:
“在锚定到锚点视图左下角的弹出窗口中显示内容视图。如果屏幕上没有足够的空间来完整显示弹出窗口,则此方法会尝试查找父卷轴视图滚动。如果没有滚动父滚动视图,则弹出窗口的左下角固定在锚点视图的左上角。“
据推测,弹出窗口始终锚定在锚点视图的左下角。我该如何解决这个问题?
答案 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中的视图。