使用Google Map V2并打开虚拟键盘时,Android EditText上的黑色矩形

时间:2013-03-18 10:18:26

标签: android google-maps surfaceview google-maps-android-api-2

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

black rectangles

这似乎与https://code.google.com/p/android/issues/detail?id=11676有关。据我所知,新版Google Google地图使用SurfaceView进行绘制,但我们无法直接访问SurfaceView

P.S。实际上这是Android's EditText is hidden when the virtual keyboard is shown and a SurfaceView is involved的变体。我在此发布此内容以提高可见性,因为这是一个常见的Google Map V2问题。如果您认为这应该是社区问题,请告诉我或者只是更改它。

1 个答案:

答案 0 :(得分:2)

您可以遍历视图层次结构并查找作为SurfaceView实例的视图。这对我有用。

如果您打算使用以下代码,请在traverse()结束时或在Google地图片段添加到您的活动时随时致电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);
        }
    }
}