Popup/Overlay screen in android honeycomb

自古美人都是妖i 提交于 2019-12-20 10:56:02

问题


I would like to achieve a popup/overlay screen like Places (i`m more interested how can i place that screen for example in the right/left side of the screen ) in the android maps application (image below). I can create an activity and use the Dialog theme, this mostly resolve my problem, but it placed center in the screen. Somebody have any better idea how i can create a popup/overlay screen like the places in a non-map application and place to top/right of the screen ?. My guess they did it with map overlays.


回答1:


well, here's what I did... I used a FrameLayout to overlay a LinearLayout where I can fill it with a View. Here's an excerpt of my code:

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>

Then in my code on some button, I would just add a View (in your case it can just be the dialog's contents) to the overlay_pane LinearLayout.

Java example:

ViewGroup container = findViewById(R.id.overlay_pane);
container.setVisibility(View.VISIBLE);
container.addView(some_view_you_inflated);

But this inflated view would have the following background: @drawable/dialog_full_holo_light for a nice border effect like the Honeycomb style.

You can find the background drawable in your SDK in the following folder

your_SDK_dir/platforms/android-12/data/res/drawable-hdpi/dialog_full_holo_light.9.png

So just copy that into your drawables.

Note: that you can also use the dialog_full_holo_dark or any custom background for the same effect.

I hope that helps :) Let me know if I was unclear at any point

Note: Instead of using a fragment, you could merely use a LinearLayout with match_parent for both layout_width and layout_height. And then you would fill that LinearLayout with the "background" UI (in the question's example.. that would be the map)



来源:https://stackoverflow.com/questions/6288811/popup-overlay-screen-in-android-honeycomb

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!