2

这只发生在 Android 2.x 上。如果您将 aGoogleMapFragment放在显示软件键盘时滚动的屏幕上,您的其他小部件的一部分将被黑色矩形覆盖。

黑色矩形

这似乎与https://code.google.com/p/android/issues/detail?id=11676有关。据我所知,新的V2 GoogleMapSurfaceView是用来绘制的,但是我们没有SurfaceView直接使用。

PS 实际上,这是Android 的 EditText 的一种变体,当显示虚拟键盘并涉及 SurfaceView 时,它会被隐藏。我在此处发布此内容以增加可见性,因为这是常见的 Google Map V2 问题。如果您认为这应该是一个社区问题,请告诉我或更改它。

4

1 回答 1

2

您可以遍历视图层次结构并查找属于SurfaceView. 这对我有用。

如果您要使用以下代码,请在Google 地图片段添加到您的活动traverse()结束时或任何时候调用。onCreate

void traverse() {
    View root = findViewById(android.R.id.content);
    traverse(root, 0);
}

void traverse(View v, int depth) {
    if (v instanceof SurfaceView) {
        SurfaceView sv = (SurfaceView) v;
        sv.setBackgroundColor(Color.TRANSPARENT);
    }

    if (v instanceof ViewGroup) {
        ViewGroup vg = (ViewGroup) v;
        for (int i = 0, len = vg.getChildCount(); i < len; i++) {
            traverse(vg.getChildAt(i), depth+1);
        }
    }
}
于 2013-03-18T10:22:36.753 回答