#android #google-maps
#Android #google-карты
Вопрос:
Мое приложение корректно отображает карту Google для действия, но когда я открываю фрагмент поверх действия, карта также отображается и на нем.
Вот как я открываю фрагмент
public void ivItemsOnClick(View view) {
FragmentManager fm = getSupportFragmentManager();
ItemsFragment itemsFragment = new ItemsFragment();
Bundle bundle = new Bundle();
bundle.putString(ORDER_ID, firebaseOrders.get(pageIndicatorView.getCurrentPage()).getId());
itemsFragment.setArguments(bundle);
fm.beginTransaction()
.replace(R.id.delivery_frame, itemsFragment)
.addToBackStack(ItemsFragment.class.getSimpleName())
.commit();
}
И вот моя настройка карты
//onCreate
mapFragment = new MapFragment();
getFragmentManager().beginTransaction().add(R.id.map_fragment, mapFragment).commit();
mapFragment.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
map = googleMap;
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
map.getUiSettings().setAllGesturesEnabled(false);
map.getUiSettings().setTiltGesturesEnabled(false);
map.getUiSettings().setZoomControlsEnabled(false);
map.getUiSettings().setCompassEnabled(false);
map.getUiSettings().setMyLocationButtonEnabled(false);
//Initialize Google Play Services
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(getApplicationContext(),
Manifest.permission.ACCESS_FINE_LOCATION)
== PackageManager.PERMISSION_GRANTED) {
buildGoogleApiClient();
map.setMyLocationEnabled(true);
}
} else {
buildGoogleApiClient();
map.setMyLocationEnabled(true);
Toast.makeText(getApplicationContext(), "permission denied", Toast.LENGTH_SHORT).show();
}
}
});
Вот xml для карты, которая находится внутри макета ограничений
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@ id/map_fragment"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
Комментарии:
1. Я сталкиваюсь с той же проблемой. Вы получили какое-либо решение?
Ответ №1:
Я вручную выполнил
mapFragment.getView().setVisibility(View.INVISIBLE)
и mapFragment.getView().setVisibility(View.VISIBLE)
внутри onBackPressed() в родительском классе activity.