当前位置: 首页 > news >正文

Compose 在Row、Column上使用focusRestorer修饰符失效原因

focusRestorer 修饰符官方说明

This modifier can be used to save and restore focus to a focus group. When focus leaves the focus group, it stores a reference to the item that was previously focused. Then when focus re-enters this focus group, it restores focus to the previously focused item.
Params:
fallback - A FocusRequester that is used when focus restoration fails to restore the initially focused item. For example, this might happen if the item is not available to be focused. The default value of FocusRequester.Default chooses the default focusable item.
Samples:
androidx.compose.ui.samples.FocusRestorerSample
LazyRow(Modifier.focusRestorer()) {item { Button(onClick = {}) { Text("1") } }item { Button(onClick = {}) { Text("2") } }item { Button(onClick = {}) { Text("3") } }item { Button(onClick = {}) { Text("4") } }
}
androidx.compose.ui.samples.FocusRestorerCustomFallbackSample
val focusRequester = remember { FocusRequester() }
LazyRow(// If restoration fails, focus would fallback to the item associated with focusRequester.Modifier.focusRestorer(focusRequester)
) {item {Button(modifier = Modifier.focusRequester(focusRequester), onClick = {}) { Text("1") }}item { Button(onClick = {}) { Text("2") } }item { Button(onClick = {}) { Text("3") } }item { Button(onClick = {}) { Text("4") } }
}

即针对focus group才能使用
所以 需要添加focusGroup修饰符

val focusRequester = remember { FocusRequester() }
Row(// If restoration fails, focus would fallback to the item associated with focusRequester.Modifier.focusRestorer(focusRequester).focusGroup() // 这里是关键
) {Button(modifier = Modifier.focusRequester(focusRequester), onClick = {}) { Text("1") }Button(onClick = {}) { Text("2") }Button(onClick = {}) { Text("3") }Button(onClick = {}) { Text("4") }
}
http://www.dtcms.com/a/469161.html

相关文章:

  • Sora 2:当AI视频“以假乱真”,内容创作进入新纪元,体验AI创作能力
  • 推荐一个浏览器代理插件(Tajang Proxy),支持Chrome和Edge
  • conda|如何通过命令行在mac上下载conda
  • VS Code 二次开发:跨平台图标定制全攻略
  • 关于微信小程序开发几点总结
  • 杭州建站价格邢台wap网站建设费用
  • kafka4使用记录
  • 2100AI智能生活
  • 网站开发交流群做网站线上线下价格混乱
  • AI:让驾驶体验个性化!
  • 由Nacos允许配置访问代理启发的Node前端部署路径转发探究
  • vue - JS 判断客户端是苹果 iOS 还是安卓 Android(封装好的方法直接调用)二种解决方案
  • 路由器如何判断数据转发目标
  • BEM命名规范
  • 12V-24V转3.2V-10V600mA恒流驱动芯片WT7018
  • 远程MCP的调用和阿里云生态的知识库和工作流的使用
  • 前端与后端开发之间的不同
  • 做企业免费网站鄂尔多斯北京网站建设
  • 网站建设优化服务好么锦州做网站
  • 在线Excel新突破:SpreadJS如何完美驾驭中国式复杂报表
  • Excel如何排序?【图文详解】Excel表格排序?Excel自动排序?
  • 【Python办公】csv转Excel(可指定行数)
  • 个人网站用备案吗深圳办公室装修公司哪家好
  • Scala面试题及详细答案100道(71-80)-- 与Java的交互
  • 基于 PyQt5 实现刀具类型选择界面的设计与交互逻辑
  • 常用库函数
  • QUIC协议相比其他传输层协议(TCP,STCP,UDP)的优势
  • 【PC+安卓】塞尔达传说:王国之泪|v1.4.2整合版|官方中文|解压可玩 内附switch模拟器
  • 【自然语言处理】实现跨层跨句的上下文语义理解的解决办法
  • 保利威点播插件功能概览:一体化视频学习与内容管理能力