如何在活动中夸大同一片段的多个实例(gmap)?

时间:2014-07-17 18:00:45

标签: android google-maps android-fragments

我已经检查了周围,我发现没有人问过这个问题,因为人们正在做的是更换碎片以便向他们展示这些或那样的时刻。除了在LinearLayout内加载了5个相同实例片段的this guy

我想要做的事情非常简单,我想要一个活动向我展示3个片段(同一个类的实例,它会扩展相同的布局)。

每次我实例化我的自定义Fragment课程时,我都会使用加载地图的<fragment/>为一个xml充气。开始时,编译器告诉我Duplicate id with another fragment因为<fragment/>在所有3个片段中都有相同的id(它是相同的xml被充气)。

所以我将<fragment/>替换为<FrameLayout/>(再次使用相同的ID),并动态加载地图。我期待同样的错误,但它没有发生,问题是,它只显示第一个地图(在屏幕的第三个),而其他碎片没有显示任何内容。

我可以在屏幕3地图中做什么,每个地图都有一个不同的片段?

Pdt:我已经尝试加载带有不同标签的地图,每个片段一个。没有工作。

修改

我刚刚尝试了一些东西,记住问题与ID有关。我尝试的是在我的自定义类int mapId中添加一个属性,并在分别使用ID 1,2和3实例化片段后设置它。

现在,在onCreateView()返回膨胀的视图之前,我设置容器<FrameLayout/>frame.setId(frame.getId()+mapId); ...最后在容器中动态加载地图时,我要求身份R.id.map+mapId。好吧,它奏效了:

Screenshot, same Fragment class, 3 different instances

这是可接受的或值得推荐的做法吗?优点缺点?手动修改id的几率是多少,它会导致与另一个现有的自动生成ID冲突?

0 个答案:

没有答案