在 ListView 中新的 gms.maps.MapView 渲染有点滞后?

Posted

技术标签:

【中文标题】在 ListView 中新的 gms.maps.MapView 渲染有点滞后?【英文标题】:New gms.maps.MapView rendering lags a bit when in a ListView? 【发布时间】:2012-12-22 11:47:20 【问题描述】:

我正在尝试将新 MapView 的实例放入 ListView。新的地图视图是:

com.google.android.gms.maps.MapView

我正在关闭所有交互,并为视图设置固定高度:

GoogleMapOptions options = new GoogleMapOptions();
    options.mapType(GoogleMap.MAP_TYPE_NORMAL);
    options.compassEnabled(false);
    options.rotateGesturesEnabled(false);
    options.scrollGesturesEnabled(false);
    options.tiltGesturesEnabled(false);
    options.zoomControlsEnabled(false);
    options.zoomGesturesEnabled(false);

mMapView = new MapView(getActivity(), options);
mMapView.setLayoutParams(new AbsListView.LayoutParams(
    AbsListView.LayoutParams.MATCH_PARENT,
    200));
mMapView.setEnabled(false);
mMapView.setFocusable(false);
getListView().addHeaderView(mMapView);
getListView().addAdapter(simpleArrayAdapter);

这可行,但如果我快速滚动列表视图,看起来地图视图渲染有点滞后,因此您可以在滚动方向上看到一小块黑色像素。

这似乎是某种同步问题,因为我猜测使用 opengl 的 mapview 足够快,可以响应我的滚动进行渲染。此外,旧的 MapView+MapActivity 在相同的设置中也能正常运行。

下面是快速滚动时出现的间隙图片。片刻之后,mapview 会赶上并再次渲染 ok。

对此有何想法?

谢谢

----- 更新---------

此问题看起来与以下内容相同:

ViewPager with Google Maps API v2: mysterious black view

但是,我无法在此处记录修复以在此设置中工作。

【问题讨论】:

我也有类似的问题:***.com/questions/14419521/…。发布了一段视频,展示了它在那里的样子。顺便说一句,你在什么设备上测试? 设备范围 - HTC Wildfire、Galaxy Nexus、Nexus S - 在所有设备上的行为都相似,有些比其他设备更糟糕(HTC Wildfire 完全变黑了) 嘿伙计,据我所知,你有像这里 cocoacontrols.com/controls/slparallaxcontroller 这样的控制器。你知道我在哪里可以找到它。 【参考方案1】:

如果您的目标 API 13,请将其放入清单中>

<application android:hardwareAccelerated="true"/>

【讨论】:

以上是关于在 ListView 中新的 gms.maps.MapView 渲染有点滞后?的主要内容,如果未能解决你的问题,请参考以下文章

Android:Listview 反弹到滚动视图

Android ListView:填充屏幕剩余空间的页眉/页脚

灵活性比Listview更好的RecycleView

Android RecyclerView与ListView比较

ListView底部item飞入动画效果

RecyclerView使用介绍