我有一个Fragment
(来自支持库),其中包括一个MapView
(来自 Google Maps API v2)。单击属于标记的信息窗口时,我想从Fragment
包含切换MapView
到另一个Fragment
包含有关标记所代表地点的详细信息的窗口。为了切换,我使用以下代码:
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.detach(oldFragment)
.add(R.id.fragment_container, newFragment, tag)
.addToBackStack(null)
.commit();
getSupportFragmentManager().executePendingTransactions();
问题是,单击信息窗口后,应用程序挂起。我能够通过调试器逐步完成,却发现最终原因是对Object.wait()
由 触发的 Google Maps API v2 库内部的调用MapView.onPause()
,我必须按照MapView
文档调用它。
我也试图注释掉这个onPause()
调用,但是另一个调用Object.wait()
是由 Google Maps API v2 库中的另一个方法触发的,并且应用程序仍然挂起。我也尝试用一个整体MapFragment
代替MapView
,但没有任何改变。
我找不到任何有同样问题的人,所以我几乎迷路了。知道发生了什么,我做错了什么,以及我能做些什么来解决这个问题?