Google PlaceAutoCompleteFragment теряет фокус при нажатии - PullRequest
0 голосов
/ 12 февраля 2020

Моя панель поиска PlaceAutoComplete теряет фокус при нажатии. Иногда можно нажать и выполнить поиск, но он не находит места, а затем снова теряет фокус.

Я уже пытался следовать представленному здесь решению: Android Google Places API, getAutocompletePredictions возвращает статус 'PLACES_API_ACCESS_NOT_CONFIGURED'

У меня есть действие с обоими фрагментами карт Google и Google размещает фрагмент:

<LinearLayout 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"
    tools:context=".MapsActivity"
    android:orientation="vertical"
    android:weightSum="1">

    <fragment
        android:id="@+id/place_autocomplete"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment"
        />

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

</LinearLayout>

Я включил Google Места на своей консоли разработчиков Google:

enter image description here

И, конечно, я Я использую ключ API, и это сделано правильно, так как функционал Карт Google работает:

  <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="@string/google_maps_key" />

Может ли это быть проблемой зависимости? Мои соответствующие зависимости:

implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.android.gms:play-services-location:17.0.0'
implementation 'com.google.android.gms:play-services-places:17.0.0'
implementation 'com.google.android.libraries.places:places-compat:2.2.0'

Я добавил компас мест (последняя зависимость) только потому, что кто-то посоветовал это, но это не помогло.

Что может вызвать эту проблему? Спасибо

1 Ответ

1 голос
/ 12 февраля 2020
// In Your Activity / Fragment While Clicking SearchView Call This (Kotlin)

private var mAutoCompleteRequestCode: Int = 1

    if (!Places.isInitialized()) {
                    Places.initialize(this.context!!, getString(R.string.google_maps_key), Locale.US)
                } else {
                    val mFields = listOf(
                        Place.Field.ID,
                        Place.Field.NAME,
                        Place.Field.LAT_LNG,
                        Place.Field.ADDRESS,
                        Place.Field.ADDRESS_COMPONENTS
                    )
                    val intent =
                        Autocomplete.IntentBuilder(AutocompleteActivityMode.FULLSCREEN, mFields).build(
                            this.context!!
                        )
                    startActivityForResult(intent, mAutoCompleteRequestCode)
                }



override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        Log.d(
            mTAG,
            "" + requestCode + "\t" + resultCode + "\t" + data
        )

        if (requestCode == mAutoCompleteRequestCode) {
            if (resultCode == RESULT_OK) {
                val place = Autocomplete.getPlaceFromIntent(data!!)

                val mLatitude = place.latLng?.latitude.toString()
                val mLongitude = place.latLng?.longitude.toString()
                val mAddress = place.name

            } else if (resultCode == AutocompleteActivity.RESULT_ERROR) {
                val status = Autocomplete.getStatusFromIntent(data!!)
                Constant.logE(mTAG, "Auto Complete Places Search Error : ", status.statusMessage!!)
            }
        } else {

        }
    }
...