Google SupportMapFragment MapView низкая производительность после возврата из другого фрагмента - PullRequest
1 голос
/ 10 апреля 2019

SupportMapFragment отстает и все вместе имеет плохую производительность после возвращения из стека.

Проблема странная, потому что я использую навигационный график для целей навигации, и проблема не всегда присутствует. Вот два разных сценария:

MapFragment -> AnotherFragment (с помощью элемента меню ActionBar) -> Mapfragment

override fun onOptionsItemSelected(item: MenuItem?): Boolean {
        onNavDestinationSelected(item!!, navController)
        return super.onOptionsItemSelected(item)
    }

В этом случае MapFragment отстает после нажатия кнопки «Назад» в AnotherFragment

MapFragment -> AnotherFragment (с помощью кнопки по умолчанию) -> Mapfragment

navController.navigate(R.id.action_mapFragment_to_anotherFragment)

В этом случае MapFragment работает нормально.

Я пытался использовать navController.navigate(R.id.action_mapFragment_to_anotherFragment) в onOptionsItemSelected(item: MenuItem?), но в итоге получил тот же результат.

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

1 Ответ

0 голосов
/ 11 апреля 2019

Таким образом, проблема не в Mapfragment или Google SupportMapFragment, а в некоторой ошибке пользовательского интерфейса Android. Мне удалось этого избежать, и я хочу поделиться решением.

Сама проблема возникла из-за навигации в ActionBar, первоначальная настройка была такой. В res / menu / menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:title="@string/about"
        android:id="@+id/options_more"
        android:icon="@drawable/ic_baseline_more_vert_24px"
        android:orderInCategory="100"
        app:showAsAction="always" />
        <menu>
            <item
                android:id="@+id/anotherFragment"
                android:title="@string/another_menu_title" />

            <item
                android:id="@+id/alsoAnotherFragment"
                android:title="@string/alsoanother_menu_title" />
        </menu>
    </item>
</menu>

В этом случае появляется раскрывающееся меню (которое содержит еще два элемента) при нажатии на элемент меню в правом верхнем углу.

Когда я использовал такую ​​раскладку, происходило отставание. После нескольких часов проб и ошибок я разделил раскрывающееся меню на две отдельные кнопки, например:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/anotherFragment"
        android:icon="@drawable/ic_baseline_location_city_24px"
        android:title="@string/about"
        app:showAsAction="ifRoom"/>
    <item
        android:id="@+id/alsoAnotherFragment"
        android:icon="@drawable/ic_baseline_more_vert_24px"
        android:title="@string/about"
        app:showAsAction="ifRoom"/>
</menu>

Итак, выпадающее меню было закрыто, а проблема исчезла. Все отлично работает отставание пропало. Я не очень понимаю, в чем корень проблемы, но я думаю, что это должно иметь какое-то объяснение.

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