Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中实现模态视图功能_Android_Modal Dialog_Android View - Fatal编程技术网

在Android中实现模态视图功能

在Android中实现模态视图功能,android,modal-dialog,android-view,Android,Modal Dialog,Android View,我的目标是在我的Android应用程序中设置一个模式视图。我想打开一个背景透明的视图,这样用户就可以看到后面的视图 我听说过使用透明活动,但这可能会冻结后面的活动,不是吗 我想要一些可重用的东西,因为这个视图将调用多个活动 谢谢也许你可以用一个?您可以使用自定义内容视图显示所需内容,并使用setCancelable(false)您可以使用以下样式使活动背景透明: <style name="TransparentActivity" parent="android:Theme.Black.No

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

  • 我听说过使用透明活动,但这可能会冻结后面的活动,不是吗
  • 我想要一些可重用的东西,因为这个视图将调用多个活动

  • 谢谢

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

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

    <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>   
    
    
    @android:彩色/透明
    @空的
    真的
    @android:风格/动画
    真的
    @空的
    真的
    
    在舱单中声明如下:

        <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
    或使用片段(取决于您的勇气)


    希望有帮助

    对话框内的自定义内容视图不适合我的需要,它仍然是一个对话框。如果我在第一个活动上有动画,我们还会看到它吗?是的,您仍然会看到它,尽管因为旧活动的顶部有一个层,它会调用onPause()。我不确定这是否会暂停动画。将某些内容分层到活动中,而不让它调用onPause()的唯一方法是动态创建“层”,作为同一活动的一部分。我在第一个视图中有一个搜索栏,它仍在移动,而第二个视图在透明活动中运行!谢谢