强制刷新MapView?

3

我现在有一个大问题,真的需要帮助,我已经花了一周时间,但还是失败了。

  1. 创建一个MapActivity(A)
  2. 从(A)启动另一个Activity(B)
  3. 从(B)启动另一个MapActivity(C)
  4. 返回(C) ->(B)
  5. 返回(B) ->(A)

第一个 MapActivity(A)死了,无论我做什么(缩放、移动),它都不会被重新绘制。

如何强制让MapActivity(A)再次工作?

非常感谢任何帮助!

预先感谢您!

3个回答

2
你尝试过使用mapview.invalidate()吗?

我尝试了以下代码: mMapView.invalidate(); mMapView.refreshDrawableState(); mMapView.requestLayout(); mMapView.forceLayout(); - Hieu Le

1

是的,我也遇到了这个问题。尝试将MapView放在某个布局中,比如MapLayout中。在onPause()中从MapLayout中移除MapView,在onResume()中将MapView添加到MapLayout中。

示例:

@Override
public void onResume(){
    super.onResume();
    if(mMapLayout.indexOfChild(mMapView)==-1) mMapLayout.addView(mMapView);
}

@Override
public void onPause(){
    super.onPause();
    if(mMapLayout.indexOfChild(mMapView)!=-1) mMapLayout.removeView(mMapView);
}

虽然这是一个相当老的帖子,但我浪费了3-4个小时来解决这个问题。我希望这个答案对其他人有所帮助。


0

无法这样做 2个MapActivity无法同时存在 只需执行其他解决方案,杀死A然后在返回时创建A


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接