是否可以将喷气背包中的一排边缘倒圆?

2023-11-22

这就是我想要实现的目标:

This is what I'm trying to do

因此,我连续创建了 2 个圆形按钮,并根据是否选择它们提供了不同的背景颜色。目标是创建一种选项卡/切换的错觉。

未选中的按钮将具有与该行的背景颜色相同的颜色。不幸的是,由于行是矩形形状,因此在拐角处有残留空间,仍然显示背景颜色。

This is what I'm getting

How to avoid this

这是我的按钮代码

val cornerRadius = 20.dp

var selectedIndex by remember { mutableStateOf(0)}

val configuration = LocalConfiguration.current
val screenWidth = configuration.screenWidthDp.dp

val items = listOf(

    OutlinedButton(onClick = { /*TODO*/ }) {

    },

    OutlinedButton(onClick = { /*TODO*/ }) {

})

Row(
    modifier = Modifier

        .padding(top = 8.dp)
        .wrapContentHeight()

        .width(screenWidth).background(color = Color.Gray).clip(shape = RoundedCornerShape(20.dp))
) {
  //  Spacer(modifier = Modifier.weight(1f))

        items.forEachIndexed { index, item ->

            OutlinedButton(modifier = Modifier
                .wrapContentHeight()
                .width(screenWidth/2),


                shape = when (index) {
                    // left outer button
                    0 -> (if (selectedIndex == index) {
                        RoundedCornerShape(
                            topStart = cornerRadius,
                            topEnd = cornerRadius,
                            bottomStart = cornerRadius,
                            bottomEnd = cornerRadius
                        )
                    } else {
                        RoundedCornerShape(
                            topStart = cornerRadius,
                            topEnd = cornerRadius,
                            bottomStart = cornerRadius,
                            bottomEnd = cornerRadius
                        )
                    })

                    //rightouterbutton

                    else -> (if (selectedIndex == index) {
                        RoundedCornerShape(
                            topStart = cornerRadius,
                            topEnd = cornerRadius,
                            bottomStart = cornerRadius,
                            bottomEnd = cornerRadius
                        )
                    }
                            else{RoundedCornerShape(
                        topStart = 0.dp,
                        topEnd = cornerRadius,
                        bottomStart = 0.dp,
                        bottomEnd = cornerRadius
                    )})
                },
                border = BorderStroke(
                    1.dp, if (selectedIndex == index) {
                      Color.Transparent
                    } else {
                        Color.Transparent
                    }
                ),
                colors = if (selectedIndex == index) {
                    // colors when selected
                    ButtonDefaults.outlinedButtonColors(
                        backgroundColor = Color.Yellow,
                        contentColor = Color.Black
                    )
                } else {
                    // colors when not selected
                    ButtonDefaults.outlinedButtonColors(
                        backgroundColor = Color.Gray,
                        contentColor = Color.Black
                    )
                },

                onClick = { selectedIndex = index },

                ) {
                if (index == 0) {

                    Text(
                        text = "In progress",
                        color = if (selectedIndex == index) {
                            Color.Black
                        } else {
                            Color.DarkGray.copy(alpha = 0.9f)
                        },
                        modifier = Modifier.padding(horizontal = 8.dp)
                    )
                } else {


                    Text(
                        text = "Completed",
                        color = if (selectedIndex == index) {
                            MaterialTheme.colors.primary
                        } else {
                            Color.DarkGray.copy(alpha = 0.9f)
                        },
                        modifier = Modifier.padding(horizontal = 8.dp)
                    )
                }
            }
        }
    }

Modifier.clip后应用Modifier.background对你的情况没有影响,你需要颠倒顺序。详细了解为什么修饰符的顺序很重要这个答案

.clip(shape = RoundedCornerShape(20.dp))
.background(color = Color.Gray)

在这种情况下的另一种选择Modifier.background是您可以将形状专门应用于背景颜色。请注意,此解决方案不会将其他视图内容剪切到形状,如下所示Modifier.clip does.

.background(color = Color.Gray, shape = RoundedCornerShape(20.dp))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以将喷气背包中的一排边缘倒圆? 的相关文章

  • 单击并按住 R 中的按钮闪亮?

    我希望能够通过单击 R 闪亮按钮来更改参数的值 所以我需要按钮 一个用于增加值 一个用于减少值 我想在按住按钮的同时保持值以一定的速度减少 增加 通过释放按钮的点击 动作应该停止 到目前为止我还没有找到这个选项actionButtons在
  • JTable过滤后正确的行号

    这是一个 try 块 用于过滤 table job 以查找与关键字匹配的行 但是 当表模型发生变化时 我很难获得正确的行索引 它始终选择第一行 即使过滤结果显示的行不是第一行 我知道你可以做一些事情fireTableDataChanged
  • java.lang.AssertionError:CALL 'public final fun

    我正在尝试使用 jetPack Compose 制作一个项目 我拥有它工作所需的所有必要依赖项 但是当我运行我的应用程序时 它会抛出一个错误 我找不到解决方案 这是错误 java lang AssertionError CALL publi
  • Ruby:基于控制台的菜单

    我有一个名称和 URL 数组 并希望以向上 向下滚动菜单的形式向用户呈现名称列表 基本上是什么dialog允许在外壳内 我调查过ncurses ruby rdialog and HighLine但它们似乎要么作为一个项目被放弃 要么甚至从它
  • 单击 R Shiny 中的按钮后将输入字段重置为 null

    我正在构建一个应用程序 用户可以在其中按列输入表的数据值 单击 添加 按钮后 输入的值将按列附加到现有值 例如 如果输入 col1 2 3 并单击 ADD 我们将在显示屏中看到 col1 2 3 如果输入 col2 4 7 并单击 ADD
  • 应如何在 WinForms GUI 控件和客户端类之间同步数据?

    什么方法被认为是保持 GUI 控件内的数据结构与应用程序维护的数据结构同步的 标准 例如 在 WinForms 中 如果创建一个 ListView 实例 而不是将其指向表示要出现在列表中的项目的数据结构 则必须以编程方式实例化 ListVi
  • 为什么 jetpack-compose 状态提升使用回调?

    本教程 https developer android com codelabs jetpack compose basics 7关于 jetpack compose 中的状态提升说 通过向 OnboardingScreen 传递函数而不是
  • 如何拥有程序执行时间的控制台?

    我正在尝试编写一个在控制台或 GUI 模式下工作的程序 具体取决于执行参数 我已经成功编写了以下示例代码 using System using System Collections Generic using System Linq usi
  • 如何更改 div 悬停时的跨度颜色

    我正在尝试更改 div 悬停时跨度的颜色 如何使红色汉堡按钮 即跨度 在 div 悬停时将颜色更改为黑色 PS 现在它在跨度的悬停上执行此操作 JSFiddle https jsfiddle net bjjbqct8 https jsfid
  • 如何将事件侦听器与“请求”事件结合起来?

    我为终端编写了一个简单的小迷宫游戏 它反复要求用户做某事 例如 您想朝哪个方向走 N E S W 我有一个navigate 方法在循环中运行 触发这些问题 存储答案并根据答案执行某些操作 public enum Dir N E S W pu
  • 在 Qt 中旋转图像

    在我的应用程序中 我想旋转图像 我已将图像设置为QLabel 我已经设置了一个QPushButton 单击该按钮时我想向四个方向旋转图像 右 gt 底部 gt 左 gt 顶部 有什么帮助吗 假设您有一个指向 QLabel 的指针 您可以执行
  • Blackberry - 自动滚动垂直字段管理器

    如何以编程方式沿特定方向滚动屏幕而不改变焦点 例如 当我们向下滚动到 FaceBook 应用程序中的 Feed 时 它会自动滚动屏幕以适合屏幕中央的所有文本 这可以在 Blackberry Java 开发中完成吗 谢谢 阿夫扎尔 如果出现以
  • CUDA 添加矩阵的行

    我试图将 4800x9600 矩阵的行加在一起 得到一个 1x9600 的矩阵 我所做的是将 4800x9600 分成 9 600 个矩阵 每个矩阵长度为 4800 然后我对 4800 个元素进行缩减 问题是 这真的很慢 有人有什么建议吗
  • Android 背景 + 文本 + 按钮图标

    我想要一个图像设置为文本的背景 并在文本的左侧设置一个图标 在iPhone中非常简单 但不知道如何在Android上做到这一点 调整按钮的大小并保持图标 文本的位置和距离正确 iPhone 安卓我有这个 xml代码是
  • 如何从 golang fyne 容器中删除对象

    我正在开发 GUI 应用程序 需要动态添加和删除 gui 元素 我想知道是否有办法从 golang fyne 容器中删除元素 在下面的示例代码中 我创建了容器并动态添加元素 现在我希望能够删除这些元素而不是隐藏它们 我尝试的一个 解决方案
  • 如何最大化 Visual Studio 面板?

    有没有办法快速最大化 然后恢复 Visual Studio 2010 面板 例如 我想暂时最大化输出窗口或单元测试结果窗口 在 Eclipse 中 我只需双击窗口选项卡 但在 VS 中 这会取消窗口的停靠 所需的行为是 双击以最大化窗口 然
  • SetCursor 在鼠标移动后恢复

    我正在使用 SetCursor 将系统光标设置为我自己的图像 代码看起来像这样 member on some class HCURSOR cursor at init time cursor LoadCursorFromFile somef
  • dotNet:有没有办法在 UI 线程上执行 Join 语句?

    我正在编写一个简单的线程应用程序 当单击开始按钮时 应用程序禁用此按钮 运行 5 个线程 只需进行 For 迭代并更新 5 个进度条 最后一个线程正在等待线程结束 以重新启用我的开始按钮 问题 用户看到按钮在进度条达到 100 之前已启用
  • 如何在 Compose Image 中显示位图

    我有一个返回位图 其中 包含 QR 码 的函数 并且我想在Image 可组合函数 但我没有找到任何方法将位图转换为ImageBitmap或者只是显示该位图 基于这篇博文 https proandroiddev com display map
  • 如何在 Tkinter 的 Button 小部件中创建多个标签?

    我想知道如何在 Tkinter 中创建具有多个标签的按钮小部件 如下图所示 带有子标签的按钮 https i stack imgur com jOZRw jpg正如您所看到的 在某些按钮中有一个子标签 例如按钮 X 有另一个小标签 A 我试

随机推荐

  • 一项操作的两个快捷键

    我需要两个快捷方式来执行一项操作 Ctrl 1 or ctrl s 有什么办法可以做到这一点吗 或者我必须创建该操作的副本 然后为此操作分配第二个快捷方式 为了在一个操作上安装多个快捷方式 您可以使用QAction setShortcuts
  • 升级您的 Android Google 移动广告 SDK 以确保广告持续投放

    我今天收到这条消息 AdMob 发布商您好 7 月初 我们向 AdMob 发出了通知 拥有在 SDK 版本 6 4 1 及更低版本上运行应用程序的发布商 告知他们有关弃用 SDK 版本以及需要升级的信息 2016 年 9 月 15 日 对于
  • Excel VBA 英镑和冒号的含义?

    我试图理解一个带有井号和冒号符号的 vba 函数 VBA函数 kn 1 pn 1 y 1 我知道井号用于在 Excel VBA 中将变量声明为双精度型 然而 从上面那行来看 它似乎没有任何意义 上面的函数有什么作用呢 冒号 是语句分隔符 它
  • 计算上次 SQL 查询插入的行数

    我有这个查询 INSERT INTO db1 outbox DestinationNumber TextDecoded SELECT User CellPhone SMSMessage as TextDecoded FROM db2 Use
  • python 中是否有可用的缩放互补误差函数?

    在matlab中有一个特殊功能我所知道的任何 Python 集合中都没有它 numpy scipy mpmath 也许还有其他地方可以找到这样的功能 UPD对于所有认为这个问题微不足道的人 请首先尝试计算参数 30 的这个函数 UPD2任意
  • 是否有任何工具可以将托管 C++ 转换为 C++/CLI? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我们有一个使用托管 C 语法编写的旧项目 我想向团队提出一种相当无痛的更新方法 我不介意一定程度的人机交互 我认为我的期望是现实的 我们仍然需要手工
  • 如何使用 WorksheetFunction.VLookup 处理 1004 错误?

    我有这个代码 Dim wsFunc As WorksheetFunction Set wsFunc Application WorksheetFunction Dim ws As Worksheet Set ws Sheets 2012 D
  • React + Redux 中的 Action 不会触发减速器

    我正在开发一个react redux应用程序 由于某种原因 我调用的操作没有到达reducer 我目前只有一个日志语句 我已附上我认为相关的代码 任何贡献将不胜感激 组件中函数内调用的操作 onSearchPressed console l
  • 在android中的对话框中设置多个文本框

    我正在创建一个对话框 它就像一个包含两个文本框和两个按钮的登录屏幕 我能够创建它 但我的问题是两个编辑文本框彼此重叠 第二个编辑文本框与第一个编辑文本框重叠 这可能是一个简单的问题 但由于我是 Android 新手 所以我一直坚持下去 请帮
  • Django,更新部分页面

    我正在尝试实现一个简单的代码测试服务器 客户将在网页上提交他们的代码 我们将使用两个测试用例运行它 可能需要几分钟 然后我们将发布结果 该页面将很简单 带有提交表单和输出框 我的问题是更新输出框 我正在寻找simplest实现输出框的方法
  • 使用 psutil 终止进程

    我正在编写一些代码 根据进程的名称和所有者来终止进程 这在 Windows XP 上运行良好 但当我在 Windows 7 上运行相同的代码时 在尝试获取进程的用户名时出现 访问被拒绝 错误 有没有更简单的方法来终止在 XP 和 Win7
  • 变分自动编码器:Keras 中的实现预热

    我最近读过这张纸它引入了一个称为 预热 WU 的过程 该过程包括将 KL 散度中的损失乘以一个变量 该变量的值取决于纪元数 从 0 到 1 线性演化 我想知道这是否是做到这一点的好方法 beta K variable value 0 0 d
  • 在第一次声明后将函数声明为默认函数

    In 8 4 2 Explicitly defaulted functions dcl fct def default 标准的 显式默认函数和隐式声明函数是 统称为默认函数 并且实现应 为它们提供隐式定义 12 1 12 4 12 8 这可
  • Azure Web Api - 每 4 分钟和 30 分钟等待一次 Sql 连接

    在 ApiController 上的请求中 我跟踪等待 Sql 连接打开的持续时间 await t TrackDependencyAsync async gt await sqlConnection OpenAsync return tru
  • PostgreSQL 日期范围未正确使用索引

    我有一个简单的表 其中有一个带有日期类型的 user birthday 字段 可以是 空值 CREATE TABLE users user id bigserial NOT NULL user email text NOT NULL use
  • org.springframework.context.ConfigurableApplicationContext 类型无法解析

    当我尝试在 Spring Tool Suite 中创建第一个应用程序时 出现以下错误 该行有多个标记 org springframework context ConfigurableApplicationContext 类型无法解析 这是
  • Rails:从列中选择唯一值

    我已经有了一个可行的解决方案 但我真的很想知道为什么这不起作用 ratings Model select rating uniq ratings each r puts r rating 它选择但不打印唯一值 而是打印所有值 包括重复项 它
  • 我可以在 C++ 中创建一个新运算符吗?如何创建?

    MATLAB 数组支持矩阵运算和元素运算 例如 M N and M N 这是区分两种不同操作的非常直观的方法 如果我想在C 中实现类似的操作 我该怎么做 我可以创建一个新的运算符吗 也 如果是 有人可以给我一些指导吗 不 你不能超载op C
  • 如何从 if 语句中获取类模板的实例? (C++)

    假设我有一个类模板 其中有一个成员pData 这是一个AxB任意类型的数组T template
  • 是否可以将喷气背包中的一排边缘倒圆?

    这就是我想要实现的目标 因此 我连续创建了 2 个圆形按钮 并根据是否选择它们提供了不同的背景颜色 目标是创建一种选项卡 切换的错觉 未选中的按钮将具有与该行的背景颜色相同的颜色 不幸的是 由于行是矩形形状 因此在拐角处有残留空间 仍然显示