在Android中实现模态视图功能

时间:2011-11-29 14:07:58

标签: android modal-dialog android-view

我的目标是在Android应用程序中设置模态视图。我想打开一个视图,其背景是透明的,以便用户可以看到后面的视图。

  1. 我听说过使用透明活动,但这可能会冻结活动,不是吗?
  2. 我想要一些可重复使用的东西,因为这个视图会调用多个活动。
  3. 由于

2 个答案:

答案 0 :(得分:2)

您可以使用此样式使活动背景透明:

<style name="TransparentActivity" parent="android:Theme.Black.NoTitleBar.Fullscreen">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:colorBackgroundCacheHint">@null</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowAnimationStyle">@android:style/Animation</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowFullscreen">true</item>
</style>   

在清单中声明如下:

    <activity
        android:label="@string/app_name"
        android:name=".activity.DialogActivity"
        android:theme="@style/TransparentActivity" >

然后我用它作为对话的布局:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout    xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:id="@+id/containerPageContainer">

    <FrameLayout    android:layout_height="wrap_content"
                    android:layout_width="match_parent"
                    android:background="@drawable/panel_picture_frame_bg_focus_blue"
                    android:layout_gravity="center"
                    android:id="@+id/dialog"/>


</FrameLayout> 

您可以膨胀其他布局并将其添加到@+id/dialog或使用片段(取决于您的勇敢程度)。

希望有所帮助!

答案 1 :(得分:1)

也许您可以使用Dialog?您可以使用自定义内容视图显示所需内容,并使用setCancelable(false)