android map.getUiSettings()。setMapToolbarEnabled(true),为什么不显示工具栏?

时间:2016-09-27 13:33:34

标签: android google-maps maps toolbar

我正在使用谷歌API,我已经为标记创建了一个自定义信息窗口。 我需要显示工具栏地图,但使用此方法 map.getUiSettings()。 setMapToolbarEnabled(true), 当我点击标记时,它会显示我的infowindow但不显示工具栏。

enter image description here

CODE:

@覆盖     public void onMapReady(GoogleMap googleMap){

    mMap = googleMap;
    mMap.getUiSettings().setMapToolbarEnabled(true);
    mMap.setOnMarkerClickListener(this);
    mMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
        @Override
        public void onInfoWindowClick(Marker marker) {


            MarkerCouple idtype = (MarkerCouple) marker.getTag();

            if (idtype.getType() == ResourceType.EVENTS && currentEvents.get(idtype.getID()) != null) {

                Resources resources = currentResources.get(currentEvents.get(idtype.getID()).getRes_ID());
                Events event = currentEvents.get(idtype.getID());

                Intent i = new Intent(MainActivity.this, ShowEventActivity.class);
                i.putExtra(Variable.USER_JSON, user.toJSON());
                i.putExtra(Variable.EVENT_JSON, event.toJSON());
                i.putExtra(Variable.RESOURCE_JSON, resources.toJSON());

                startActivityForResult(i, Variable.SHOW_EVENT);
            }

            if (idtype.getType() == ResourceType.PLACES && currentPlaces.get(idtype.getID()) != null) {
                Resources resources = currentResources.get(currentPlaces.get(idtype.getID()).getRes_ID());
                Places place = currentPlaces.get(idtype.getID());

                Intent i = new Intent(MainActivity.this, ShowPlaceActivity.class);
                i.putExtra(Variable.USER_JSON, user.toJSON());
                i.putExtra(Variable.PLACE_JSON, place.toJSON());
                i.putExtra(Variable.RESOURCE_JSON, resources.toJSON());

                startActivityForResult(i, Variable.SHOW_PLACE);

            }
        }
    });

    mMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
        @Override
        public View getInfoWindow(Marker marker) {

            View v = getLayoutInflater().inflate(R.layout.marker_preview, null);
            ImageView m = (ImageView) v.findViewById(R.id.marker_image);
            m.setImageBitmap(Bitmap.createScaledBitmap(imageToShow, 600, 400, true));
            return v;
        }

        @Override
        public View getInfoContents(Marker marker) {


            return null;
        }
    });
    new MarkerAsync().execute();


}

@Override
public boolean onMarkerClick(final Marker marker) {

    MarkerCouple idtype = (MarkerCouple) marker.getTag();


    if (idtype.getType() == ResourceType.EVENTS && currentEvents.get(idtype.getID()) != null) {
        Events event = currentEvents.get(idtype.getID());
        final Resources resources = currentResources.get(event.getRes_ID());
        Picasso.with(MainActivity.this).invalidate(Variable.DOWNLOAD_URL + resources.getURI());
        new AsyncTask<Void, Void, Void>() {
            @Override
            protected Void doInBackground(Void... params) {
                try {
                    imageToShow = Picasso.with(MainActivity.this).load(Variable.DOWNLOAD_URL + resources.getURI()).get();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return null;
            }

            @Override
            protected void onPostExecute(Void v) {
                marker.showInfoWindow();

            }
        }.execute();


    }


    if (idtype.getType() == ResourceType.PLACES && currentPlaces.get(idtype.getID()) != null) {

        Places place = currentPlaces.get(idtype.getID());
        final Resources resources = currentResources.get(place.getRes_ID());
        Picasso.with(MainActivity.this).invalidate(Variable.DOWNLOAD_URL + resources.getURI());
        Picasso.with(MainActivity.this).invalidate(Variable.DOWNLOAD_URL + resources.getURI());
        new AsyncTask<Void, Void, Void>() {
            @Override
            protected Void doInBackground(Void... params) {
                try {
                    imageToShow = Picasso.with(MainActivity.this).load(Variable.DOWNLOAD_URL + resources.getURI()).get();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return null;
            }

            @Override
            protected void onPostExecute(Void v) {
                marker.showInfoWindow();

            }
        }.execute();

    }


    return true;
}

1 个答案:

答案 0 :(得分:2)

return false;

中的onMarkerClick()

来自the documentation

  

public abstract boolean onMarkerClick(Marker marker)

     

<强>返回

     

如果侦听器已使用该事件(即,不应发生默认行为),则为true,否则为false(即,应发生默认行为)。默认行为是相机移动到标记并显示信息窗口。