2016-05-26 4 views
0

Я пытаюсь реализовать фрагмент, который реализует карту Google и показывает маркер на него.Как вы называете GetMapAsync в xamarin без блокировки основного потока?

фрагмент в настоящее время имеет двух детей, одну кнопку и один фрагмент с атрибутом

class="com.google.android.gms.maps.MapFragment" 

Когда мои ViewPager переключается на что (или близкий по) фрагмент, пользовательский интерфейс замерзает для немного

Что я в настоящее время находится в методе OnCreateView фрагмента я называю:

  MapFragment map_fragment = FragmentManager.FindFragmentById<MapFragment>(Resource.Id.maps_map); 
     map_fragment.GetMapAsync(this); 

, а затем я сделал фрагмент реализации интерфейса IOnMapReadyCallback порога е я всю свою работу

Я попытался создания AsyncTask и есть метод GetMapAsync для запуска в DoInBackground, но я получаю сообщение об ошибке, что GetMapAsync должен быть запущен на главном потоке

Есть ли способ, чтобы избежать замораживания?

ответ

0

Попробуйте проверить документацию Add a map to an Android app.

Здесь вы можете проверить, как добавить Fragment объект в Activity который будет обрабатывать карты, как реализовать интерфейс OnMapReadyCallback и использовать метод onMapReady(GoogleMap) обратного вызова, чтобы получить дескриптор GoogleMap, и как позвонить/использовать getMapAsync() на фрагменте для регистрации обратного вызова.

Для получения более подробной информации и примеров кода, перейдите по ссылке, которую я предоставить в documentaion.

Вы также можете проверить это SO question, если он может помочь вам и узнать более подробную информацию.

Смежные вопросы