2

これはAndroid2.xでのみ発生します。GoogleMapFragmentソフトウェアキーボードが表示されているときにスクロールする画面にを置くと、他のウィジェットの一部が黒い長方形でオーバーレイされます。

黒い長方形

これはhttps://code.google.com/p/android/issues/detail?id=11676に関連しているようです。私の知る限り、新しいV2 GoogleMapは描画に使用しますが、直接SurfaceViewアクセスすることはできません。SurfaceView

PS実際には、これはAndroidのEditTextのバリエーションであり、仮想キーボードが表示され、SurfaceViewが関与している場合は非表示になります。これはGoogleMapV2の一般的な問題であるため、視認性を高めるためにここに投稿します。これがコミュニティの質問であると思われる場合は、お知らせいただくか、変更してください。

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 に答える