我在地图上有可点击的图标,点击时在图标上方显示一个 PopupWindow。但是,如果图标位于地图的最顶部,则 PopupWindow 将隐藏在 Android 状态栏下。PopupWindow 将自动调整到屏幕的左右边缘以及顶部边缘,但不考虑状态栏面板。
要么应该有一种方法来适应 MapView 的高度,要么应该有一个考虑状态栏的 PopupWindow 属性。当然,总是可以添加一个固定大小的顶部边距,但是顶部面板在不同的 Android 单元上具有不同的高度。
有人能帮忙吗?谢谢!
我在地图上有可点击的图标,点击时在图标上方显示一个 PopupWindow。但是,如果图标位于地图的最顶部,则 PopupWindow 将隐藏在 Android 状态栏下。PopupWindow 将自动调整到屏幕的左右边缘以及顶部边缘,但不考虑状态栏面板。
要么应该有一种方法来适应 MapView 的高度,要么应该有一个考虑状态栏的 PopupWindow 属性。当然,总是可以添加一个固定大小的顶部边距,但是顶部面板在不同的 Android 单元上具有不同的高度。
有人能帮忙吗?谢谢!
不幸的是,我仍然没有找到将 MapView hieght 调整为 Android 状态栏的方法。
然而,在 PopupWindow 的情况下,知道 Android 状态栏的高度就足够了,因为它是由编码器放置在屏幕上的。然后,编码人员可以围绕该问题制定自己的策略。
根据另一篇文章,可以这样做:
Rect rectgle = new Rect();
Window window = getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
statusBarHeight = rectgle.top;
但是,请注意在所有窗口组件都已初始化之前不要进行此计算,否则它将为零。这很容易被注意到和修复。
BR,瓦尼亚