我想在android地图应用程序(下图)中实现像Places一样的弹出/覆盖屏幕(我更感兴趣的是如何在屏幕的右侧/左侧放置该屏幕)。我可以创建一个活动并使用Dialog主题,这主要解决了我的问题,但它放在屏幕的中心。有人会更好地了解如何创建弹出/覆盖屏幕,如非地图应用程序中的位置并放置在屏幕的顶部/右侧?我猜他们是用地图叠加来做的。
答案 0 :(得分:4)
嗯,这就是我做的...我使用FrameLayout覆盖一个LinearLayout,我可以在其中填充一个View。这是我的代码的摘录:
XML:
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<fragment class="com.some.location.to.fragment"
android:id="@+id/fragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout
android:id="@+id/overlay_pane"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
android:background="@color/transparent">
</LinearLayout>
</FrameLayout>
然后在我的代码中的某个按钮上,我只是将一个View(在你的情况下它可以只是对话框的内容)添加到overlay_pane LinearLayout。
Java示例:
ViewGroup container = findViewById(R.id.overlay_pane);
container.setVisibility(View.VISIBLE);
container.addView(some_view_you_inflated);
但是这个膨胀的视图将具有以下背景: @ drawable / dialog_full_holo_light ,以获得像Honeycomb风格这样漂亮的边框效果。
您可以在以下文件夹中的SDK中找到可绘制的背景
your_SDK_dir /平台/机器人-12 /数据/ RES /抽拉-HDPI / dialog_full_holo_light.9.png
所以只需将其复制到您的drawable中。
注意:您也可以使用dialog_full_holo_dark或任何自定义背景来获得相同的效果。
我希望有所帮助:)如果我在任何时候都不清楚,请告诉我
注意:您可以仅使用带有match_parent的LinearLayout而不是使用片段,而不是使用片段,而是使用layout_width和layout_height。然后你会用“背景”UI填充那个LinearLayout(在问题的例子中......那就是地图)