对于我的应用程序,我必须从启动器附近实现一些东西:我必须提供动态添加、删除、调整大小和拖放一些 UI 元素的能力(我们称它们为“小部件”,但它们不是 Android AppWidgets)。它工作得很好,但是这些“小部件”之一包含一个 MapFragment,我无法添加它两次,也不能删除它并再次添加它。
目前,每个“小部件”都继承自 FrameLayout。MapFragment 是从 xml 加载的。问题是我们不能通过代码设置 Fragment id,如果我在 xml 中这样做,我的所有地图显然都有相同的 id。所以我得到了这个例外:
03-20 09:55:35.078: E/AndroidRuntime(19507):
Caused by: java.lang.IllegalArgumentException:
Binary XML file line #24: Duplicate id 0xffffffff, tag map,
or parent id 0xffffffff with another fragment for
com.google.android.gms.maps.MapFragment
这是片段的代码:
...
<fragment
android:tag="map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.MapFragment" />
...
View.inflate(getContext(), layout, R.layout.widget_map);
所以我在这里,完全卡住了^^。我已经在 stackoverflow 和互联网上进行了搜索,但没有找到解决方案。
此外,我使用的是 Android Maps API V2,每次更改屏幕方向时都会在控制台中打印一些 GC(所以当重新绘制地图时),我必须担心它们吗?
03-20 10:02:41.820: D/dalvikvm(19650): GC_CONCURRENT freed 1929K, 17% free 11579K/13940K, paused 3ms+4ms, total 44ms
03-20 10:02:42.250: D/dalvikvm(19650): GC_CONCURRENT freed 382K, 14% free 12123K/13940K, paused 3ms+13ms, total 67ms
03-20 10:02:42.250: D/dalvikvm(19650): WAIT_FOR_CONCURRENT_GC blocked 51ms
03-20 10:02:42.328: D/dalvikvm(19650): GC_CONCURRENT freed 2114K, 21% free 11099K/13940K, paused 2ms+2ms, total 45ms
03-20 10:02:42.328: D/dalvikvm(19650): WAIT_FOR_CONCURRENT_GC blocked 32ms
任何的建议都受欢迎 !