Как найти MyLocationButton на картах Google Android? - PullRequest
1 голос
/ 18 марта 2019

Вот как я включаю свою кнопку местоположения, чтобы ее можно было нажимать на карте:

map.setMyLocationEnabled(true);

Мой вопрос: как найти эту кнопку и сохранить ее в переменной, чтобы ее можно было отобразить илине в соответствии с логикой моего приложения?Спасибо!

Ответы [ 2 ]

1 голос
/ 20 марта 2019

Вы можете получить его через findViewWithTag("GoogleMapMyLocationButton") в режиме MapFragment root.С таким кодом:

public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {
    ...
    private GoogleMap mGoogleMap;
    private MapFragment mMapFragment;
    private View mMyLocationButtonView = null;
    ...


    @Override
    public void onMapReady(GoogleMap googleMap) {
        mGoogleMap = googleMap;

        if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            int locationPermission = ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION);
            if (locationPermission != PackageManager.PERMISSION_GRANTED) {
                requestPermissions(new String [] {Manifest.permission.ACCESS_FINE_LOCATION}, LOCATION_PERMISSION_REQUEST_CODE);
            } else {
                mGoogleMap.setMyLocationEnabled(true);
                mGoogleMap.getUiSettings().setMyLocationButtonEnabled(true);
                mMyLocationButtonView = mMapFragment.getView().findViewWithTag("GoogleMapMyLocationButton");
                mMyLocationButtonView.setBackgroundColor(Color.GREEN);
            }
        }
    }
}

вы получите что-то вроде этого:

MyLocationButton with custom background

0 голосов
/ 18 марта 2019

Вы можете отключить отображение кнопки «Мое местоположение», позвонив по номеру UiSettings.setMyLocationButtonEnabled(false).

.

См. https://developers.google.com/maps/documentation/android-sdk/location#my-location

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