【问题标题】:Fragment or View on top of Map fragment in AndroidAndroid中地图片段顶部的片段或视图
【发布时间】:2018-10-24 12:44:36
【问题描述】:
我正在开发一个应用程序,一旦单击标记,我想在谷歌地图顶部显示一些叠加层。我想知道视图或片段是否是解决此问题的正确方法。我之前尝试使用片段进行此操作,但它可以工作,但我无法在后台看到谷歌地图,但是现在我正在使用视图进行操作并且工作正常,但是我仍然可以在地图中移动视图打开的背景,也许有一些方法可以暂停片段交互?我的另一个问题是,我应该使用片段还是视图?是否有一些正确的方法可以做到这一点,以便我仍然可以在后台显示地图?
这是单击标记后我当前拥有的图像。
【问题讨论】:
标签:
android
android-fragments
android-view
google-maps-android-api-2
【解决方案1】:
Fragment 和 View 都是正确的方法 - 它仅取决于与叠加层相关的逻辑量。
- 何时使用
View:当叠加层只是某种“弹出”,并没有太大作用(例如,仅显示文本)时
- 何时使用
Fragment:当叠加层具有更多逻辑并且可能具有生命周期时,例如,您有某种 EditText 和一个 Button 以及一个 API 调用和一个进度指示器 - 您会得到偏差。将此逻辑分离到一个模块中以保持实体的简单性和包含性是有意义的。
顺便说一句,对于这种弹出窗口,您也可以使用 Dialog,它比 Fragment 更容易实现。 Here is a simple example.
至于为什么尽管视图在地图上可见,但您仍然可以在地图上导航 - 尝试在您的 XML 中向该视图添加两个属性:
<View
android:id="@+id/yourView"
android:clickable="true"
android:focusable="true" />
它将使视图拦截所有触摸,而不是将其向下传递到视图树。