#android #google_maps #android_location
Я решил реализовать кнопку "Определения местоположения" со всеми состояниями, как в Google maps. Подробнее: Неактивная - Когда пользователь шастает по карте. Активная - Когда пользователь определил свое местоположение на карте, и камера следует за ее перемещением. Теперь к коду:Кнопка определения местоположения: FAB.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { cameraFromPosition(); followUser = true; FAB.setColorFilter(ContextCompat.getColor(getApplicationContext(),R.color.primary)); // синий цвет т.е. активная } }); Слежка за местоположением: @Override public void onLocationChanged(Location location) { if (followUser) { // начинаем слежку т.к. нажата кнопка "определения местоположения" и цвет ей синий cameraFromPosition(); } } Как лучше реализовать метод "Отлова, когда пользователь опять начал шастать по карте, и тем самым кнопку сделать неактивной т.е. серой"?
Ответы
Ответ 1
Откопал я таки официальную серию новых методов от Google [Doc], которые отлавливают скролл по карте и не только. P.S. all inclusive. Для решения моей задачи хватило только следующее: implements GoogleMap.OnCameraMoveStartedListener. В методе public void onMapReady(GoogleMap googleMap) добавитьmap.setOnCameraMoveStartedListener(this);. И последнее: @Override public void onCameraMoveStarted(int reason) { if (reason == GoogleMap.OnCameraMoveStartedListener.REASON_GESTURE) { followUser = false; FAB.setColorFilter(ContextCompat.getColor(getApplicationContext(),R.color.grey)); } } P.S. Готовый Callback от Google в подарок.
Комментариев нет:
Отправить комментарий