Карты Google не полностью загружены во фрагмент Android - PullRequest
0 голосов
/ 03 июля 2019

У меня есть приложение с двумя действиями, показывающими Карты Google. Карта совместно используется двумя действиями через включенный фрагмент. Проблема заключается в частичной загрузке Карт Google.

Я уже проверил ключ API, ограничил ключ API приложением SHA-1 (а также попробовал неограниченный ключ). Я использую Kotlin вместе с Android Studio 3.4.1 и AndroidX.

Макет Google Maps

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

<fragment
    android:id="@+id/map"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</FrameLayout>

Карта, включенная в активность, показана на скриншотах:

<include
        layout="@layout/fragment_map"
        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_toBottomOf="@id/include"
        tools:context=".ui.features.domain.DomainMapActivity" />

Код активности:

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setTheme(R.style.AppTheme)
        setContentView(R.layout.activity_domain_map)
        bindViews()
        init()
        initMap()
    }

    private fun init() {
        val bundle: Bundle? = intent.extras
        bundle?.let { it ->
            domainLocation = it.getParcelable("domain_location")
            wineID = it.getString("wine_id")
            domainName = it.getString("domain_name")

            domainName?.let {
                mToolbarLogo = mToolbar.findViewById(R.id.toolbar_logo)
                mToolbarTitle = mToolbar.findViewById(R.id.toolbar_title)

                mToolbarLogo.visibility = View.GONE
                mToolbarTitle.visibility = View.VISIBLE
                mToolbarTitle.text = it
            }
        }
    }

    private fun initMap() {
        try {
            val options = GoogleMapOptions()
            options.mapType(GoogleMap.MAP_TYPE_TERRAIN)
                    .compassEnabled(false)
                    .rotateGesturesEnabled(true)
                    .scrollGesturesEnabled(true)
                    .tiltGesturesEnabled(true)

            mapFragment = SupportMapFragment.newInstance(options)

            val ft = supportFragmentManager.beginTransaction()
            ft.replace(R.id.map, mapFragment)
            ft.commit()

            mapFragment.getMapAsync(this@DomainMapActivity)

        } catch (e: NullPointerException) {
            Log.e(TAG, e.localizedMessage)
        }
    }

    override fun onMapReady(googleMap: GoogleMap?) {
        mMap = googleMap
        mMap?.setOnMapClickListener(this)
        mMap?.setOnMarkerClickListener(this)
        mMap?.setOnCameraMoveListener(this)

        if (checkPermission()) {
            mMap?.isMyLocationEnabled = true
            mMap?.uiSettings?.isMyLocationButtonEnabled = true
        } else askPermission()

        //Ensure the location to pass is not null
        domainLocation?.let {
            setCurrentLocation(it)
        }
    }

Фактический результат:

1 https://imgur.com/QhCXCEw (вход в активность, увеличение 15)

2 https://imgur.com/urhQiFh (Уменьшить, нет подробностей)

3 https://imgur.com/gXoQzcm (Уменьшить, мое текущее местоположение)

Ожидаемый результат при вводе действия: 4 : https://imgur.com/lA9UAa4 "Местоположение пользователя (мое текущее местоположение) и что я при входе в действие (правильное отображение)"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...