Jetpack Compose 全屏对话框

2023-12-31

我尝试使用以下代码使用 Jetpack Compose 制作全屏对话框:

Dialog(onDismissRequest = { /*TODO*/ }) {
           NewPostDialog()
       }

它最终看起来像这样。如何去除侧面的边距(标记为红色)?


UPDATE:正如 @Nestor Perez 提到的,因为 compose 1.0.0-rc01 你可以设置usePlatformDefaultWidthin DialogProperties使对话框填满整个屏幕宽度:

Dialog(
    properties = DialogProperties(usePlatformDefaultWidth = false),
    onDismissRequest...
    ){
      Surface(modifier = Modifier.fillMaxSize()) {
          DialogContent()
      }
    }

Compose Dialog uses ContextThemeWrapper所以你应该能够使用自定义样式来主题你的对话框。

themes.xml:

 <style name="Theme.YourApp" parent="Theme.MaterialComponents.Light.NoActionBar">
       //theme content...
        <item name="android:dialogTheme">@style/Theme.DialogFullScreen</item>
    </style>

 <style name="Theme.DialogFullScreen" parent="@style/ThemeOverlay.MaterialComponents.Dialog.Alert">
        <item name="android:windowMinWidthMajor">100%</item>
        <item name="android:windowMinWidthMinor">100%</item>
    </style>

并在代码中:

@Composable
fun FullScreenDialog(showDialog:Boolean, onClose:()->Unit) {
    if (showDialog) {
        Dialog(onDismissRequest =  onClose ) {
            Surface(
                modifier = Modifier.fillMaxSize(),
                shape = RoundedCornerShape(16.dp),
                color = Color.LightGray
            ) {
                Box(
                    contentAlignment = Alignment.Center
                ) {
                    Text(modifier = Modifier.align(Alignment.TopCenter),
                        text = "top")
                    Text("center")
                    Text(
                        modifier = Modifier.align(Alignment.BottomCenter),
                        text = "bottom")
                }
            }
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jetpack Compose 全屏对话框 的相关文章

  • 如何使用 WifiEnterpriseConfig 设置“使用系统证书”

    我想为我的应用程序的用户配置企业 WiFi 网络 因此 用户必须输入用户名和密码 其余的由应用程序处理 身份验证由 RADIUS 服务器 FreeRadius 3 处理 该服务器使用 LetsEncrypt 颁发的证书 因此无需导入我自己的
  • 包管理器已去世

    我收到一位安装了很多应用程序的用户发来的邮件 称当我的应用程序使用以下代码收集活动信息时 他遇到了问题 getPackageManager queryIntentActivities mAinIntent 0 完整来源在这里 https g
  • 有没有一种方法可以在不使用意图的情况下在活动之间发送数据?

    我有一个对于每个用户来说都是唯一的用户名 我想将其发送到某个活动 但我不想使用意图 create an intent and sends username Intent intent new Intent RegisterOwner thi
  • Facebook4j API:搜索

    我正在使用 Facebook4j 通过关键字获取状态 facebook4j conf ConfigurationBuilder fac new facebook4j conf ConfigurationBuilder fac setDebu
  • 对话框片段嵌入取决于设备

    在我的应用程序中 用户从联系人或通话记录中选择电话号码 选择联系人非常简单 并且在手机和平 板电脑上都可以很好地工作 i e 在手机上会弹出新的全屏活动 在桌子上我会看到带有联系人列表的漂亮弹出对话框 似乎无法从通话记录中选择电话号码 因此
  • 当前版本的Android Gradle插件不支持按需配置

    升级到 Android Studio 3 1 2 后 出现以下错误 当前版本的 Android Gradle 插件不支持按需配置 因为您使用的是 Gradle 4 6 或更高版本 建议 通过在 gradle properties 文件中设置
  • 如何在Android中访问现有的sqlite数据库?

    到目前为止 我们已经在 Android 中开发了在运行时创建数据库的应用程序 我们想知道如何在 Android 应用程序中访问预构建或现有的数据库 sqlite 文件 请提供详细信息 查看文档android database sqlite
  • 有人可以给出一个 android 中 webview 实现的确切例子吗

    嗨 我正在使用开发 Android 应用程序WebView执行 我跟着官方安卓教程 http developer android com resources tutorials views hello webview html 在 Ecli
  • 无法在 Android 上编译 avahi

    我是交叉编译的新手 我被分配了使用android补丁的任务http avahi org ticket 354 http avahi org ticket 354将 avahi 核心编译为 android ndk build avahi co
  • Android ViewModel LiveData 在按钮单击时更新视图

    我正在关注这个tutorial https developer android com topic libraries architecture guide html common problems faced by app develop
  • Android:如果任务管理器终止,则重新调用应用程序

    如果应用程序线程被任务管理器杀死 则应用程序线程将关闭 需要重新调用应用程序 就像它被其他应用程序或任务管理器杀死一样 任何想法 您必须使用 START STICKY 命令运行后台服务 只需扩展 Service 并重写 onCommand
  • 如何为 flutter 绘图应用实现橡皮擦功能

    有一个关于通过 flutter 创建绘图应用程序的视频 YouTube https www youtube com watch v yyHhloFMNNA 它支持当用户点击屏幕时绘制线 点 但我找不到像 Android 本机那样擦除用户绘制
  • Android 10 请求 ACTIVITY_RECOGNITION 权限

    我试图遵守 Google 的要求 为 Android 10 请求 ACTIVITY RECOGNITION 权限 但我似乎不明白为什么没有显示权限弹出窗口 就像其他权限 即位置 存储等 一样 我的代码是 if ContextCompat c
  • 推特更新状态

    我正在通过 twitter4j 将 Twitter 集成到 Android 我可以成功阅读我发布的推文 现在我试图用它发布推文 但我不能 我收到如下奇怪的警告 02 01 16 28 43 298 WARN System err 729 4
  • 在循环中按名称访问变量

    我正在开发一个 Android 项目 并且有很多可绘制对象 这些绘图的名称都类似于icon 0 png icon 1 png icon 100 png 我想将这些可绘制对象的所有资源 ID 添加到整数 ArrayList 中 对于那些不了解
  • Android项目中使用java获取电脑的IP地址

    我在用ksoap2 android http code google com p ksoap2 android 我需要使用java获取IP地址 这样我就不必每次都手动输入它 我所说的 IP 地址是指 例如 如果我这样做ipconfig使用命
  • 如果我的应用程序安装在 SD 卡上,私人数据也在那里吗?

    我假设应用程序的私有数据 例如 SharedPreferences 和 SQLite 数据库 位于手机的内部存储而不是 SD 卡上 即使应用程序本身安装在 SD 卡上 我在任何地方都找不到对此的简单明确的确认 有人可以确认一下吗 是的 私有
  • Android Jetpack Compose 尺寸随持续时间变化的动画

    如何在 Jetpack Compose 中添加内容大小更改动画的持续时间 尝试使用Modifier animateContentSize 并通过动画规格具有持续时间 但它只是突然进入或退出 没有观察到持续时间 Column Modifier
  • android 中的 java.net.URL ..新手问题

    我是java新手 正在尝试android开发 以下代码生成 malformedURLException 有人可以帮助我识别异常吗 任何提示都会非常有帮助 package com example helloandroid import and
  • Android Studio 中自动打开“运行设备”选项卡

    在 Android Studio Flamingo 中有一个名为跑步设备并且它会在每次之后自动打开运行应用程序 有办法禁止这个自动打开吗 我尝试禁用启用物理 Android 设备的镜像选项 但选项卡仍然自动打开 基于此issue https

随机推荐

  • 我可以将 cperl 模式与 perl 模式着色一起使用吗?

    Emacs cperl 模式似乎比 perl 模式更容易混淆 但彩虹糖效应使该东西对我来说无法使用 有谁知道或知道 emacs 块的示例 该示例使 cperl mode 使用 perl mode 的着色 理想情况下以一种足够可读的形式 以便
  • 寻找适合企业网站的轻文本富编辑器,比tinymce更轻,带有用于评论表单的基本按钮

    我正在寻找适合企业网站的轻文本富编辑器 比tinymce更轻 带有用于评论表单的基本按钮 重要的是编辑器也可以在 IE6 中运行 到目前为止 我尝试使用 cleditor 15KB 但当按 enter 键时 IE 出现问题 客户有问题 Jq
  • EmberJS 使用 HasMany 取消(回滚)对象

    假设我有一个 ParentObjecthasMany项目 我想在我的应用程序中实现取消功能Add将回滚所有内容的路线 简而言之 我有 父对象IsNew and IsDirty 并且有可能 项目 也将是IsNew and IsDirty 所以
  • 使用 like 关键字在单个查询中匹配多个标题

    使用 like 关键字在单个查询中匹配多个标题 我正在尝试获取与给定标题匹配的所有记录 下面是数据库的结构请参阅 数据库截图 https prnt sc JduJ6NSIr1E 当我传递单个类似查询时 它返回数据 Query SELECT
  • 聚焦离子输入时有没有办法隐藏键盘?

    我想要一个可以聚焦的离子输入 并且键盘不应该出现 有什么办法或者有可能吗 谢谢你 是的 安装这个插件 gt https ionicframework com docs native keyboard https ionicframework
  • 在Scheme中注释代码

    我正在查看一些代码Scheme from Festival并且似乎无法弄清楚评论 目前 我可以看到 and 用于指示注释行 网络上的其他来源表明上面的一些可能是指示多行注释的方法 我的问题是 有什么区别 and 用于发表评论 什么时候应该使
  • mvc 和 webapi 之间的身份验证(单独的域/应用程序)

    我正在为以下场景寻找好的想法 资源 实现 MVC 网站位于http mywebsite com http mywebsite com Webapi REST 服务位于http myapi com http myapi com 重要信息 请注
  • 如何为 Arduino IDE 安装 openCV 库?

    我正在开发一个使用面部跟踪 对象跟踪 面部识别等的 Arduino 项目 为了实现这一目标 我决定使用 OpenCV 库 然而问题是 我不知道如何安装 Arduino 和处理的 OpenCV 库 谁能告诉我该怎么做 谢谢 如果您使用的是处理
  • 绘制多条路线谷歌地图

    我想根据Google中的路线服务绘制多条路线 代码如下 p s Data是我从json调用中获得的列表 for i 0 i lt 20 i route data i start new google maps LatLng route fr
  • Visual C# Studio 项目中的哪些文件不需要版本控制?

    我是 Visual C Studio 的新手 实际上使用的是 Express 版本 但另一个开发人员正在使用完整版本 并且我们正在使用版本控制 svn 将项目文件添加到存储库对我来说是可以接受的 因为此存储库仅适用于我们两个使用 Visua
  • 为什么我的 vscode 光标在 div 周围显示一个块

    一旦我进入 DIV 标签或任何函数 我的 vscode 就会在这些标签周围显示一个空白框 在此输入图像描述 https i stack imgur com GhhQ2 png我也添加了一张图片 有人可以帮我禁用这个吗 所以我只能看到光标 看
  • tf.keras - 尽管使用 GPU 内存,但第一个时期的训练并未取得进展

    我一直在尝试训练使用 Keras 的 Tensorflow 实现编写的 CNN 看起来训练在到达第一个 epoch 时就陷入了困境 尽管根据 nvidia smi 的说法 我的 GPU 似乎仍在使用内存 也没有错误消息或回溯打印到终端 这使
  • 如何重置 blueimp jQuery 文件上传插件?

    要旨 如何重置 blueimp jQuery 文件上传插件 使其认为尚未上传任何文件 我的场景 我有一个上传表单 只允许上传一个文件 文件上传后 就会对其进行分析 此时 用户可以选择单击 取消 按钮 我可以在其中重置视图模型的其余部分 当用
  • 网格视图根据屏幕尺寸自动显示列数

    我正在使用 Gridview 我想在其中显示一些图片 我希望我的网格视图在所有尺寸的屏幕上都看起来不错 我的意思是我正在为不同的 Android 设备开发我的应用程序 例如三星 Galaxy Grand 普通设备 三星 Tab 4 7 英寸
  • 调用 shell 脚本时是否会完整读取?

    我问这个问题是因为我最近对正在执行的 KornShell ksh 脚本进行了更改 保存更改后不久 执行过程失败 从错误消息来看 运行的进程似乎已经看到了我的一些 但不是全部 更改 这强烈表明 当调用 shell 脚本时 整个脚本不会读入内存
  • 如何将消息上下文标头添加到apache axis 2 Java

    我正在从事网络服务工作 我想知道如何向 JAX WS 类型 Web 服务中的 SOAP 请求添加标头 像这样考虑我的标题 Map
  • 为什么Gerrit无法自己创建分支?

    下列的这个答案 https stackoverflow com a 10461674 1469208 and 我自己的问题 https stackoverflow com q 20583800 1469208 我有一个简单的 希望如此 问题
  • 有没有办法让“make”回显命令

    有没有办法拥有makeecho 命令被手动抑制 在生成文件中 我在帮助或手册页中找不到这个 它只是说 quiet 来做相反的事情 最明显的想法是更改运行命令的 shell 例如修改你的makefile并添加到顶部SHELL sh xv 另一
  • LayoutInflater 似乎没有与布局中的 id 链接

    我完全迷失了这个 LayoutInflater 我正在尝试将代码中的项目与位于远程布局中的项目链接起来 我尝试了三种不同版本的充气机创作 它们都不起作用 然而 这个版本似乎是使用最广泛的 这是充气机乱码的片段 setContentView
  • Jetpack Compose 全屏对话框

    我尝试使用以下代码使用 Jetpack Compose 制作全屏对话框 Dialog onDismissRequest TODO NewPostDialog 它最终看起来像这样 如何去除侧面的边距 标记为红色 UPDATE 正如 Nesto