【发布时间】:2015-10-13 21:37:10
【问题描述】:
这里有一些有趣的问题,我希望有人能解释一下。
我目前在同一屏幕上有一个带有滑动抽屉(已弃用 - 我知道)的 Maps v2 片段。一旦用户完成了他们的任务,他们可以拉动滑动绘图并单击“完成”。这利用了 SupportFragmentManager,我基本上最终用一个全新的片段替换了屏幕的内容。
但是,即使滑动抽屉已被新片段替换,用户仍然可以单击滑动抽屉上的内容。有什么提示吗?
下面是负责代码的骨架结构:
activity_map.xml
<RelativeLayout android:id="@+id/activity_map">
<LinearLayout>
<include layout="@layout/toolbar"/>
<fragment android:id="@+id/fragment_map"
android:name="com.foo.fragment.MapFragment" />
</LinearLayout>
<SlidingDrawer>
...
</SlidingDrawer>
</RelativeLayout>
MapActivity.java
...
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.activity_map, newFragment, TAG);
transaction.addToBackStack(null);
transaction.commit();
【问题讨论】:
-
transaction.replace(R.id.activity_map, newFragment, TAG);您正在尝试替换布局容器(RelativeLayout)上的片段,而没有任何片段! -
您应该将
activity_map.xml的布局内容作为片段布局的一部分,然后您将能够实现所需的行为。 -
@MuhammadBabar 但我在上面的容器中有一个地图片段。我需要一个围绕滑动抽屉和我的地图片段的活动,然后我需要替换抽屉和地图并用另一个片段填充屏幕。做这个的最好方式是什么? ——
-
如果这适合您的架构,当前最简单的方法是打开一个新活动!否则,您必须遵循上述建议!
-
@MuhammadBabar 好的,对于我需要做的事情来说,开始一个新的活动完全是矫枉过正,所以请您在下面的答案中发布修改后的 activity_map.xml 吗?我会执行你的第一个建议。谢谢!
标签: android google-maps android-fragments slidingdrawer