我使用RecyclerView
在LiteMode
中显示地图,一切都在按照我的预期进行,直到昨晚。我相信我的手机最终获得了新的Google Play服务7.3
更新,当我今天早上开始使用我的应用时,LiteMode地图的每个实例都在右下角的谷歌地图应用图标中略显开启。
在我的RecyclerView的onBindViewHolder
中,我尝试像这样禁用工具栏
@Override
public void onBindViewHolder(ViewHolder viewHolder, Cursor cursor,int position) {
if(viewHolder.mGoogleMap != null){
viewHolder.mGoogleMap.addMarker(new MarkerOptions().position(incident.getPosition()));
viewHolder.mGoogleMap.getUiSettings().setMapToolbarEnabled(false);
viewHolder.mGoogleMap.getUiSettings().setAllGesturesEnabled(false);
viewHolder.mGoogleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
@Override
public void onMapClick(LatLng latLng) {
}
});
CameraPosition p = new CameraPosition.Builder()
.target(incident.getPosition()).zoom(15).build();
viewHolder.mGoogleMap.animateCamera(CameraUpdateFactory.newCameraPosition(p));
}
}
在我的ViewHolder中,我尝试在地图加载后禁用它
public ViewHolder(View itemView,Context context) {
map = (MapView)v.findViewById(R.id.mapImageView);
if(map != null){
map.onCreate(null);
map.onResume();
map.getMapAsync(this);
}
}
@Override
public void onMapReady(GoogleMap googleMap) {
if(this.context != null) {
MapsInitializer.initialize(this.context);
mGoogleMap = googleMap;
mGoogleMap.getUiSettings().setMapToolbarEnabled(false);
mGoogleMap.getUiSettings().setAllGesturesEnabled(false);
Cursor c = getCursorAtPosition(getAdapterPosition());
if(c != null){
Incident i = new Incident(c);
mGoogleMap.addMarker(new MarkerOptions().position(i.getPosition()));
CameraPosition position = new CameraPosition.Builder()
.target(i.getPosition()).zoom(15).build();
mGoogleMap.animateCamera(CameraUpdateFactory.newCameraPosition(position));
}
}
}
我不认为我的逻辑在回收方面有什么问题,有什么不对,我怎么禁用工具栏?
修改
事实上,点击该图标甚至无法正常工作,它会打开Google地图应用,但会在0,0位置居中
答案 0 :(得分:2)
有人向Google提交了此问题,他们已接受并正在调查here。我建议所有在Google问题跟踪器上遇到此问题的人 Star Issue 7947以获得及时更新,因为此错误似乎没有已知的解决方法。
Google Play服务版7.3.29似乎引入了一些地图错误:/