Я просто перенес MapView из макета Activity в DialogFragment. Это было довольно безболезненным миграция:
Карту Android Google в FragmentDialog, наложенную собственным серым наложением Dialog
Кнопка на активности запускает диалог, установив LatLng
карту необходимо:
case R.id.btn_open_map:
android.support.v4.app.FragmentManager fragmentManager
= getSupportFragmentManager();
DirectionsMapDialogFragment mapDialogFragment = new DirectionsMapDialogFragment();
mapDialogFragment.setLatLng(mLatLng);
mapDialogFragment.setRetainInstance(false);
mapDialogFragment.show(fragmentManager, "fragmentName");
break;
В фрагменте себя все это довольно стандартный код. Однако я использовать пользовательский макет, так как у меня есть кнопка, перекрывающая карту, которая запускает приложение GoogleMaps:
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
tools:context="com.alexrafa.meetmi.fragments.DirectionsMapFragment"
android:background="@android:color/transparent">
<com.google.android.gms.maps.MapView
android:id="@+id/mv_location_map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:apiKey="APIKEY"
/>
<ImageButton
android:layout_width="39dp"
android:layout_height="39dp"
android:src="@drawable/ic_directions_grey600_24dp"
android:id="@+id/btn_directions"
android:background="@drawable/background_map_button"
android:layout_gravity="top|center|right"
android:layout_marginRight="11dp"
android:layout_marginTop="60dp"
android:contentDescription="@string/btn_get_map_directions" />
</FrameLayout>
Обратите внимание, как я попытался установить фон прозрачные в FrameLayout
. Я сделал это, потому что, кажется, моя карта перекрываются стандартной серой накладкой всех Диалогов есть в Android:
И это не проблема аутентификации API, все функции изображения карт работают отлично. Как я могу это исправить?
Кажется, что ваш фрагмент диалога использует тему Holo для фрагмента диалога карты. Попробуйте установить тему различия для вашего DirectionsMapDialogFragment. Здесь вы можете найти ссылку для запуска диалога frament с атрибутом темы: http://stackoverflow.com/questions/ 13469084/dialogfragment-in-android-with-theme – saurabh1489
Благодарим за внимание. Я попытался установить стиль, но не повезло ... – Deegriz
Вы пытались установить фон диалога из кода. Что-то вроде этого: dialog.getWindow(). SetBackgroundDrawable (newColorDrawableResource (android.R.color.transparent)); – saurabh1489