如何停止Codenameone中的MapContainer类的拖动/平移

时间:2018-08-25 01:04:02

标签: codenameone

我正在使用MapContainer类在android上显示google地图。

如何阻止用户将地图拖动/滑动到新位置?即。希望地图保持固定在我设置的坐标上。

我尝试使用MapContainer.setEnabled(false),但这似乎只能在模拟器中使用,并且在实际的android设备上部署时不会起作用。

TIA。

1 个答案:

答案 0 :(得分:1)

平移在处理自己事件的本机映射中处理。由于这些事件发生在Android UI线程上,因此Codename One不会在不造成性能损失的情况下拦截它们​​。

您有两个选择:

  • 拦截本机Android代码中的事件
  • 事后修正职位

第二个要容易得多,只需使用地图侦听器检测更改,然后使用API​​将地图平移回原始位置。但是,这可能会产生不良的UX,在这种情况下,您唯一的选择是使用本机代码。

您可以通过更改cn1lib code来做到这一点,甚至可以使用拉取请求向后提供功能。这应该在本机映射中相对容易实现,因为它可能应该映射到API中的一个setter / getter对,例如jobSearch(); const jobSearch = () => { return async (dispatch) => { //<==HERE console.log('DEBUG::step 1:'); const shouldRefreshToken = await refreshToken();//<==HERE if (!shouldRefreshToken) {//<===HERE console.log('DEBUG::step 6:'); //....... //Call function to print step 8, step 9 } else { console.log('DEBUG::step 7:'); //Perform other operation } }