【问题标题】:How to make MapView height take the Android status bar into account?如何让 MapView 高度考虑 Android 状态栏?
【发布时间】:2010-08-13 08:35:48
【问题描述】:

我在地图上有可点击的图标,点击时会在图标上方显示一个 PopupWindow。但是,如果图标位于地图的最顶部,则 PopupWindow 将隐藏在 Android 状态栏下。 PopupWindow 会自动调整到屏幕的左右边缘以及顶部边缘,但不考虑状态栏面板。

要么应该有一种方法来适应 MapView 的高度,要么应该有一个考虑状态栏的 PopupWindow 属性。当然,总是可以添加一个固定大小的顶部边距,但顶部面板在不同的 Android 设备上具有不同的高度。

有人可以帮忙吗? 谢谢!

【问题讨论】:

  • 不是一个真正的解决方案,而是一个想法:您可以在显示弹出窗口之前将您的地图集中在点击的东西上。那能解决你的问题吗?
  • 我只是在猜测,但如果用 dip 来衡量,每个设备上的状态栏大小不都一样吗?
  • 我不想改变地图的中心,因为用户会觉得这很烦人。但谢谢你的想法。 android状态栏的大小根据这个帖子不同:stackoverflow.com/questions/3407256/…

标签: android google-maps android-mapview popupwindow


【解决方案1】:

不幸的是,我仍然没有找到将 MapView hieght 调整为 Android 状态栏的方法。

但是在 PopupWindow 的情况下,知道 Android 状态栏的高度就足够了,因为它是由编码器放置在屏幕上的。然后,编码人员可以针对该问题制定自己的策略。

根据其他帖子,这是可以做到的:

Rect rectgle = new Rect();
Window window = getWindow();
window.getDecorView().getWindowVisibleDisplayFrame(rectgle);
statusBarHeight = rectgle.top;

但是,请注意在所有窗口组件都已初始化之前不要进行此计算,否则它将为零。这很容易被注意到和修正。

BR, 万尼亚

【讨论】:

    猜你喜欢
    • 2021-08-17
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 2021-04-26
    • 1970-01-01
    • 2012-12-13
    • 2011-03-02
    • 1970-01-01
    相关资源
    最近更新 更多