Jetpack Compose如何获取组件全量偏移(尤其是右下角坐标)
获取Jetpack Compose组件边角坐标的方案
你补充的Spacer方案可以实现需求,但存在多余的布局嵌套,更简洁的实现方式直接利用onGloballyPositioned回调的自带属性即可,无需额外添加组件:
Modifier.onGloballyPositioned { layoutCoordinates -> // 左上角坐标(你已掌握的写法) val topLeftX = layoutCoordinates.positionInRoot().x val topLeftY = layoutCoordinates.positionInRoot().y // 直接通过组件尺寸计算右下角坐标 val bottomRightX = topLeftX + layoutCoordinates.size.width val bottomRightY = topLeftY + layoutCoordinates.size.height // 其余边角也可以按需计算: // 右上角坐标:(topLeftX + layoutCoordinates.size.width, topLeftY) // 左下角坐标:(topLeftX, topLeftY + layoutCoordinates.size.height) }
- 如果需要获取相对父布局而非根布局的坐标,把
positionInRoot()替换为positionInParent()即可 - 该方案不会引入多余视图层级,性能优于添加Spacer的实现,也无需处理额外的布局对齐逻辑
内容的提问来源于stack exchange,提问作者Barrufet
相关产品推荐
相关产品推荐

