24

をテーマにしたMapFragmentのを見せようとしています。これは正常に機能します。ただし、マップには暗いオーバーレイが表示されます。Android Maps v2 APIActivity@android:style/Theme.DeviceDefault.Light.Dialog.NoActionBar

ダイアログ

テーマをに変更する@android:style/Theme.DeviceDefault.Light.NoActionBarと、マップは次のように表示されます。

普通

これは私のxmlレイアウトファイルです:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <fragment
        android:id="@+id/mapfragment"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        class="com.google.android.gms.maps.MapFragment" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="HELLO"
        android:textSize="@dimen/textsize_large" />

</LinearLayout>

ここで何が起きてるの?

4

5 に答える 5

11

の場合DialogFragment:

getDialog().getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
于 2015-08-01T10:07:27.347 に答える
1

Audrel のソリューションに追加するには、マップが表示されているときはいつでもダイアログのウィンドウを動的に暗くし、マップがなくなったときに暗くすることができます (たとえば、ダイアログに複数のページがあり、そのうちの 1 つがマップである場合)。

private float mDimAmount;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    WindowManager.LayoutParams params = getWindow().getAttributes();
    mDimAmount = params.dimAmount; // remember original dim amount
    ...
}

private void undim() {
    WindowManager.LayoutParams params = getWindow().getAttributes();
    params.dimAmount = 0.0f;
    getWindow().setAttributes(params);
}

private void dim() {
    WindowManager.LayoutParams params = getWindow().getAttributes();
    params.dimAmount = mDimAmount;
    getWindow().setAttributes(params);
}

根本的な原因に取り組むのではなく、まだ別の回避策...

于 2015-09-10T06:23:36.453 に答える
0

ダイアログ内のマップの目的に応じて、マップ コントロールが必要ない場合は、liteModeロードした場所にマップの画像だけが表示されるように使用できます。この z レイヤー オーバーレイの問題はありません。

MapViewこれをレイアウト xmlに追加できます。

map:liteMode="true"

とにかくマップをインタラクティブにしたくないので、これはうまくいきました。

ここで Google ドキュメントを読むことができます: https://developers.google.com/maps/documentation/android-api/lite

于 2016-05-12T21:40:56.353 に答える