我有一个名为whereActity的活动,它也有子对话.现在,我想将此活动显示为另一个活动的对话框.

我怎么才能做到这一点呢?

在此处输入图像描述

推荐答案

要将活动作为对话启动,我在AndroidManifest.xml中将其定义如下:

<activity android:theme="@android:style/Theme.Dialog" />

activity标签内使用此属性可避免您的对话框出现在最近使用的应用程序列表中

android:excludeFromRecents="true"

如果要在用户在对话框外单击时停止销毁对话框/活动,请执行以下操作:

Activity中使用setContentView()后:

this.setFinishOnTouchOutside(false);

现在,当我呼叫startActivity()时,它会显示为一个对话框,当用户按下Back按钮时,会显示前面的活动.

请注意,如果使用ActionBarActivity(或AppCompat主题),则需要使用@style/Theme.AppCompat.Dialog.

Android相关问答推荐

Jetpack Compose Scaffold—content不在TopAppBar下面开始'

懒惰的垂直网格中盒子的重量-Jetpack组合

Android Kotlin - 计费 - 从应用内购买获取productId

Kotlin - 在继续之前如何等待这个协程完成?

在 kotlin 协同 routine 中,如何将数据范围限定为请求路径(以 MDC 为例)?

使用不同的gradle文件导入外部库

页面标题未显示在内容页面上

Android 构建失败:找不到 flexbox2.0.1.aar

需要在按钮 onclick 上从 string.xml 获取值. @Composable 调用只能在@Composable 函数的上下文中发生

为一组闪烁的可组合项制作动画,控制同步/定时

在一个函数中组合相同的流 struct

通知使用默认语言,屏幕显示多种语言,同时通过 AppCompatDelegate 设置应用程序语言

为什么@PrimaryKey val id: Int? = null 在创建 Room 实体时有效吗?

延时kotlin中时分秒的使用方法

Koin Android-KMM:我有嵌套范围但注入不起作用

可组合的可见性不随状态变化而变化

您如何衡量条形图的 4 个类别?

如何在 react native 应用程序中显示复选框?当它在 android 模拟器中可见时

compose :为什么以记住启动的列表触发方式与快照不同

如何将私有 mutableStateOf 分配给 Android Jetpack 中的 State 变量?