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

# Android Compose 实现 左滑删除

Android Compose 实现 左滑删除

直接看源码

private enum class CardState {Collapsed /* 收缩 */, Expanded /* 展开的 */ // 哈哈哈,还能学点英文 (:
}
@Composable
private fun PersonCard(modifier: Modifier = Modifier, person: Person) {val density: Density = LocalDensity.current// 锚点val anchors: DraggableAnchors<CardState> = remember {DraggableAnchors<CardState> {CardState.Collapsed at 0FCardState.Expanded at -with(density){50.dp.toPx()}}}// 状态val state: AnchoredDraggableState<CardState> = remember {AnchoredDraggableState<CardState>(initialValue = CardState.Collapsed,anchors = anchors,)}// 渲染完成让删除按钮往右移动var intOffset: IntOffset by remember {mutableStateOf(value = IntOffset.Zero)}Box(modifier = Modifier.offset { IntOffset(state.offset.roundToInt(), 0) }.anchoredDraggable(state = state,orientation = Orientation.Horizontal).fillMaxWidth().height(height = 50.dp),contentAlignment = Alignment.CenterEnd // 必须是 2D Alignments.) {Box(modifier = Modifier.background(color = Color(0xFFFFCCBC)).fillMaxWidth().fillMaxHeight())Text(text = "删除",textAlign = TextAlign.Center,lineHeight = TextUnit(50F, TextUnitType.Sp),modifier = Modifier.fillMaxHeight().width(width = 50.dp).onSizeChanged {Log.i(TAG, "PersonCard -> Box2 onSizeChanged")intOffset = IntOffset(x = with(density) { 50.dp.toPx().toInt() }, y = 0)}.offset {Log.i(TAG, "PersonCard -> Box2 offset")intOffset}.background(color = Color(0xFFF8BBD0), shape = RoundedCornerShape(size = 10.dp)))}
}

Text本身是支持文本居中的,麻烦的是需要自己算行高,原理和css3居中文本一致。
效果如下:
image

http://www.gsyq.cn/news/50567.html

相关文章:

  • WebServer类 - 指南
  • EFCore中巧妙利用ToQueryString()实现批插(不借助第三方包)
  • 2025年11月安徽省有实力的旧房翻新企业综合推荐排行榜
  • 2025年Dynamics 365 CRM的工作行情如何?
  • 简单了解数组
  • 2025 最新钢结构厂家推荐排行榜,涵盖全产业链服务与优质产能企业权威甄选钢结构建筑/钢结构房屋/钢结构屋面/钢结构网架/钢结构桁架/钢结构连廊公司推荐
  • 2025 年 11 月漆渣脱水系统,漆渣脱水机,漆渣脱水装置品牌最新推荐,产能、专利、环保三维数据透视!
  • 2025 国内网架厂家最新推荐排行榜:聚焦钢结构 / 球形 / 螺栓球多场景,甄选技术服务双优的权威品牌指南
  • Flink Data Sink 理论 、架构、语义保证、两阶段提交与可插拔拓扑 - 指南
  • 2025年推拉窗源头厂家权威推荐榜单:性价比门窗/系统窗/自建房门窗源头厂家精选
  • 实战内容
  • [KaibaMath]1022 一道平面几何题的两种解法
  • 动态规划法
  • 函数表达式:JavaScript中那些你不知道的优雅写法 - 教程
  • 2025 最新无缝钢管优质厂家推荐:国际测评认证 + 技术创新 + 全场景适配 + 服务保障综合榜单
  • 西门子S7200_SMART仿真软件的使用(保姆级教程)
  • 天津雅思培训机构排名2025,无老师国际/新通教育等优质机构,师资/口碑/提分率大PK
  • 2025 最新无缝钢管源头厂家推荐:国际测评认证 + 技术创新 + 全场景适配 + 服务保障综合榜单
  • 2025 11 15
  • Rust RefCell 多线程读为什么也panic了?
  • 关于样式
  • Java-Spring入门指南(二十四)SSM整合HTML:克服CSS/JS静态资源被过滤问题
  • 2025 最新推荐!汽车喇叭网生产厂家权威排行榜,0.01MM 精度 + 全工艺保障,靠谱品牌甄选
  • 二维固定一维+划分 4 个象限——P12617 [RMI 2023] Circles
  • 2025年雅思培训机构哪家强?1V1定制/封闭班/机考押题班/集训营高提分机构推荐
  • 2025 最新蚀刻加工厂家口碑推荐排行榜权威发布,涵盖精密蚀刻定制与不锈钢蚀刻加工优质服务商
  • ESP-IDF V5.4 开发环境搭建教程(基于 Windows11 WSL2 )
  • idf.py如何退出串口监视器模式?
  • Tomcat的常见问题
  • 2025 最新净水器经销商推荐排行榜,精选优质服务商 涵盖直饮 / 反渗透等多类型设备直饮水净水器/过滤净水器/反渗透净水器公司推荐