Почему android закусочная невидима при просмотре карты? - PullRequest
0 голосов
/ 28 февраля 2020

Я использую карту от Яндекс MapKit. Когда пользователь нажимает на карту, я показываю ему результаты поиска, добавляю метку и показываю снэк-бар с названием местоположения и кнопкой.

Проблема

На моем устройстве Xiaomi (Xiaomi Mi 9 , android 9) снэк-бар существует, но он невидим, пока не выполнено какое-либо действие.

Пример: Нажмите на карту Откройте диспетчер приложений Откройте приложение еще раз, нажав в диспетчере приложений

Я также могу откройте поисковый редактор (верхняя часть карты), и будет показана закусочная. Когда закусочная невидима, она существует: я могу нажать на радиус кнопки закусочной, и действие кнопки будет запущено!

При использовании эмулятора android проблем не возникает (Google Pixel в разных API: 23 , 28, 29 ...)

Моя активность XML:

<RelativeLayout 
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:id="@+id/placesMapLayout"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:context=".activities.PlacesMapActivity">

<com.yandex.mapkit.mapview.MapView
    android:id="@+id/placesMapView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

<com.google.android.material.textfield.TextInputLayout
    android:id="@+id/outlinedTextField"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:boxBackgroundColor="@color/white"
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_margin="20dp"
    android:hint="@null">

    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/searchEdit"
        android:imeOptions="actionSearch"
        android:inputType="text"
        app:boxBackgroundColor="@color/white"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</com.google.android.material.textfield.TextInputLayout>

</RelativeLayout>

Создание Snackbar (Kotlin):

val snackbar = Snackbar.make(placesMapLayout, foundObject.name.toString(), Snackbar.LENGTH_INDEFINITE)

Я пытался установить layout_height для mapView, чтобы получить пустое место в нижней части активности. И это сработало: скриншот . Один кран и закусочная видна! Но я не хочу обрезать свою карту.

Итак, есть ли проблема с mapView и как ее решить?

1 Ответ

0 голосов
/ 01 марта 2020
snackbar.view.post { snackbar.view.requestLayout() }

Это помогло мне.

...