对于我的应用程序的需要,我需要一个Mapview应该像ImageView一样。
没有默认行为的小地图(不允许用户移动它),我需要在点击它时启动Google地图。
我试过使用这样的代码:
mapView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("geo:<lat>,<long>?q=<lat>,<long>(Label+Name)"));
startActivity(intent);
}
});
但似乎从未调用OnClickListener,我还没有找到如何禁用mapview滚动。
感谢您的帮助。
编辑: 我已经尝试使用clickable = false,这是一件好事,因为地图现在已“禁用”而用户无法移动它,但我点击时无法启动GMaps ...
答案 0 :(得分:2)
当您设置clickable(false)
时,您无法使用onClick
,当您设置clickable(true)
时,onTouch
将成为焦点。因此,覆盖onTouch
然后检查其中是否您的地图视图不可点击,如果它不可点击=&gt;开始活动。
答案 1 :(得分:2)
启动Google地图使用onTouchListener,因为单击mapview时从不调用onClickListenere。我试过这样:
mapView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
Toast.makeText(getApplicationContext(), "Hello", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(CurrentActivity.this, NextActivity.class);
startActivity(intent);
return false;
}
});
其中NextActivity是另一个扩展MapActivity的活动。
答案 2 :(得分:0)
您需要在mapView就绪后设置onClick侦听器
mapView?.getMapAsync {googlemap->
googlemap. setOnMapClickListener(object : GoogleMap.OnMapClickListener {
override fun onMapClick(p0: LatLng?) {
//...
}
})
答案 3 :(得分:-1)
使xml文件中的android:clickable="false"
可以帮助您