我有一个非常简单的页面与离子卡和下面的卡我有谷歌地图:
private void OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
{
IRaiseStartCellEditEvent context = DataContext as IRaiseStartCellEditEvent;
if (context != null)
{
context.StartCellEdit += (o, args) =>
{
//Get the cell from first row
var cell = DataGrid.GetCell(0, 2);
//Focus on the cell for editing
cell.Focus();
//Start editing the cell
DataGrid.BeginEdit();
//Get the editing textbox
var tbEditor = Extensions.GetVisualChild<TextBox>(cell);
//Force the keyboard focus
if (tbEditor != null)
{
Keyboard.Focus(tbEditor);
tbEditor.SelectAll();
}
};
}
}
在我的style.css中我有这样的地图配置大小:
<ui-gmap-google-map center='map.center' zoom='map.zoom' dragging='false' options="map.options" scroll="false"></ui-gmap-google-map>
在我的控制器中,我有以下代码来启动地图:
.angular-google-map-container { height: 400px; }
在IOS上一切都很棒。 Chrome浏览器也是如此。但是,当我在Android上运行应用程序时,它“不幸地停止”。特别是如果我在加载页面上的所有数据之前快速滚动。
不确定这种行为如何稳定似乎是谷歌地图+离子性能问题。
解决此问题的任何帮助都会很棒。
在adb logcat中我发现了以下内容:
uiGmapGoogleMapApi.then(function(maps) {
$scope.map = { center: { latitude: $scope.lat,longitude: $scope.lng },
zoom:15,
options: {
zoomControl: true,
maxZoom:15,
minZoom:10,
draggable: false,
rotateControl: false,
scrollwheel: false,
streetViewControl: false,
disableDefaultUI: true,
mapTypeId:google.maps.MapTypeId.ROADMAP
}
};
});
答案 0 :(得分:2)
将这个用于离子地图 效果很好!
https://github.com/allenhwkim/angularjs-google-maps
我完全删除了
<script src='lodash.min.js'></script>
and
<script src='angular-google-maps.min.js'></script>
删除了地图的html标记:
<ui-gmap-google-map center='map.center' zoom='map.zoom' dragging='false' options="map.options" scroll="false"></ui-gmap-google-map>
而是使用ngMap。用法很简单。
加载js文件:
<script src="http://maps.google.com/maps/api/js"></script>
<script src="http://rawgit.com/allenhwkim/angularjs-google-maps/master/build/scripts/ng-map.min.js"></script>
将ngMap添加到您的应用中:
var myApp = angular.module('myApp', ['ngMap']);
将地图标记添加到页面中(例如):
<map center="41,-87" zoom="3"></map>
到目前为止,已经在3个不同的Android设备上进行了测试,每个设备上有10-15个项目,行为稳定,并且还有很好的延迟加载功能!