一、概念

不止触摸交互,在 ChromeOS 或外接键鼠的设备上,需要考虑焦点、悬停、右键等操作逻辑。

二、使用

2.1 焦点

使用 Tab 键来导航,改变边框以提供清晰的焦点指示器。

@Composable
fun Demo() {val interactionSource = remember { MutableInteractionSource() }val isFocused by interactionSource.collectIsFocusedAsState()val border = BorderStroke(width = if (isFocused) 3.dp else 1.dp,color = if (isFocused) Color.Red else Color.Black)Box(modifier = Modifier.focusable(interactionSource = interactionSource).border(border)) {}
}

2.2 右键

右键/长按,表示更多选项。

@Composable
fun Demo() {var showMore by rememberSaveable { mutableStateOf(false) }var pressOffset by remember { mutableStateOf(DpOffset.Zero) }Box(modifier = Modifier.pointerInput(Unit) {detectTapGestures(onLongPress = { offset ->pressOffset = DpOffset(offset.x.toDp(), offset.y.toDp())showMore = true})}) {DropdownMenu(expanded = showMore,onDismissRequest = { showMore = false },offset = pressOffset) {DropdownMenuItem(text = { Text("AAA") }, onClick = {  })DropdownMenuItem(text = { Text("BBB") }, onClick = {  })}}
}

2.3 悬停

让组件感知鼠标悬停,改变背景色。

@Composable
fun Demo() {val interactionSource = remember { MutableInteractionSource() }val isHovered by interactionSource.collectIsHoveredAsState()val backgroundColor = if (isHovered) Color.Gray else Color.WhiteBox(modifier = Modifier.hoverable(interactionSource = interactionSource).background(backgroundColor)) { }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/92601.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/92601.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/92601.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

征服 Linux 网络:核心服务与实战解析

在当今的IT基础设施中,Linux作为服务器操作系统的基石,其强大的网络功能是其不可或缺的优势。对于任何志在成为高级系统管理员或运维工程师的人来说,精通Linux网络配置与服务管理是核心竞争力。 与日常应用不同,Linux网络管理往往…

Spark 之 DataFrame

# foreach useFeatureDF.rdd.foreachPartition {iter => iter.foreach {row =>val userId = row.getAs[Int]

射频信号(大宽高比)时频图目标检测anchors配置(下)

书接上文: 射频信号(大宽高比)时频图目标检测anchors配置(上) 三、4090加成检测效果深度优化 在4090 24G专用显存加持下继续探究大宽高比目标检测的奥秘: Conda环境迁移至租的云服 在云服上第一次测试…

跨境支付入门~国际支付结算(区块链篇)

摘要Web3区块链技术架构解析:从底层共识到应用生态本文系统梳理了Web3作为稳定币基础设施的技术架构,采用"数字共和国"的比喻框架,将区块链技术分解为六大核心模块:宪法根基(区块链层)&#xff1…

Docker 私服

什么是 Docker 私服? Docker 官方的 Docker Hub 是一个用于管理公共镜像的仓库,我们可以从上面拉取镜像 到本地,也可以把我们自己的镜像推送上去。 但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像…

DeepSeek vs ChatGPT:谁更胜一筹?

新兴 AI 聊天机器人的崛起与挑战:对话模型发展观察近年来,生成式人工智能领域持续取得突破,聊天机器人作为其中的代表,广泛应用于写作、编程、问答和信息处理等任务。2025 年初,国内某 AI 团队宣布了多项模型技术进展&…

飞算科技:以原创技术为翼,赋能产业数字化转型

在数字经济浪潮席卷全球的当下,一批专注于技术创新的中国企业正加速崛起,飞算数智科技(深圳)有限公司(简称 “飞算科技”)便是其中的佼佼者。作为一家国家级高新技术企业,飞算科技以自主创新为核…

电商接口什么意思?

“电商接口”这四个字,在中文互联网上出现的频次越来越高:商家后台、小程序、ERP、数据大屏……几乎任何与线上零售沾边的场景都会提到它。然而,对大多数刚进入电商行业的新人,甚至一些已经开了很多年网店的老板来说,这…

前端面试专栏-前沿技术:30.跨端开发技术(React Native、Flutter)

🔥 欢迎来到前端面试通关指南专栏!从js精讲到框架到实战,渐进系统化学习,坚持解锁新技能,祝你轻松拿下心仪offer。 前端面试通关指南专栏主页 前端面试专栏规划详情 跨端开发技术(React Native、Flutter&am…

复盘—MySQL触发器实现监听数据表值的变化,对其他数据表做更新

文章目录 MySQL交换数据库表中两列的值(额外的知识) 为防止后面有疑问,提前解释为什么需要 `$$` ? 第一版需求 第二版需求 第三版需求 注意事项: 存在的严重问题 最终版 关键修复说明: 完整测试场景: 额外建议(如果需要显式处理NULL): COALESCE函数 业务中出现的问题…

SpringCloud【Sentinel】

1,工作原理 2,常见规则 流量控制(FlowRule) 1,阈值类型设置如下 单机均摊:每个机器均摊,比如阈值填5,三个机器,就个机器都可以有5个 总体阈值:所有机器总阈…

解构未来金融:深入剖析DeFi与去中心化交易所(DEX)的技术架构

今天,我们来聊一个颠覆传统金融界的热门话题——DeFi(去中心化金融)。大家可能听说过它如何承诺将银行、交易所、保险等金融服务构建在一个开放、无需许可的区块链网络上。而这一切魔法的核心,正是其独特的“技术架构”。 在这篇文…

中国西北典型绿洲区土壤水分特征(2018-2019年)

数据集摘要该数据包含张掖绿洲黑河沿岸湿地、过渡带杨树林土壤水分、温度数据。数据采集时间为2018年至2019年,采集地点为张掖绿洲,数据为日数据。该数据集是按照课题制定的试验方案和中国生态系统研究网络编著的陆地生态系统水土气生观测规范进行数据的…

MySQL高可用部署

目录 一、MHA(一主多从模式) 1.环境准备(所有节点) 2. 部署 MySQL 主从复制(MasterSlave) 3.部署 MHA Manager(管理节点) (1)安装 MHA Manager &#xf…

从 XSS 到 Bot 攻击:常见网络攻击防不胜防?雷池 WAF 用全场景防护为网站筑牢安全墙

1. 网络攻击类型当前常见的网络攻击类型包括:重放攻击(HTTP Request Replay Attack):攻击者截获合法用户的 HTTP 请求并重新发送,以欺骗服务器执行相同操作。危害包括消耗服务器资源、大量抓取数据或绕过认证操作敏感接…

【王树森推荐系统】推荐系统涨指标的方法05:特殊用户人群

为什么要特殊对待特殊人群? 新用户,低活用户的行为很少,个性化推荐不准确。个性化的召回和排序都需要基于用户的历史行为,如果历史行为少,个性化就做不好,尤其是新用户,这就需要策略把个性化做的…

Java 大视界 -- Java 大数据在智能家居能源管理与节能优化中的深度应用(361)

Java 大视界 -- Java 大数据在智能家居能源管理与节能优化中的深度应用(361)引言:正文:一、Java 构建的智能家居能源数据架构1.1 多源能耗数据实时采集1.2 家庭能源画像与异常检测二、Java 驱动的节能策略与智能控制2.1 多场景节能…

从零开始的云计算生活——番外5,使用ELK实现对应用日志的监控

目录 一.环境准备 试验机安装 修改文件配置 二.收集测试机(test)日志 配置pipline文件 配置filebeat配置文件 三.收集测试机nginx日志 下载安装nginx 修改filebeat文件 修改pipline文件 四.收集网络服务模块日志 1.DHCP 下载dhcp 修改配置…

Node.js:函数、路由、全局对象

Node.js函数 在JavaScript中,一个函数可以作为另一个函数的参数,可以先定义一个函数,然后进行传递,也可以在传参的地方直接定义 function sayhello(){console.log("hello"); } function run(hello, value){hello();cons…

2025暑期—06神经网络-常见网络3

VGG16网络64个卷积核做两次卷积,填充后编程224X224X64 pooling 两次卷 pooling 三次卷...分辨率降低一半,通道数增加1倍所有卷积核都是3x3, 所有的pooling 都是2x2残差网络每一层的块都有越层的连接。