You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Jetpack Compose中不受无障碍缩放影响保持按钮尺寸不变?

如何让Jetpack Compose按钮尺寸不受无障碍「显示尺寸」缩放影响

我在Jetpack Compose中实现了一个固定尺寸的按钮:

Button(
    modifier = Modifier
        .width(350.dp)
        .height(50.dp),
    onClick = { }
) {
    Text(text = "MY TEXT")
}

遇到的问题是:当用户开启无障碍功能并增大「显示尺寸」时,按钮会随之放大。我需要让按钮尺寸保持固定,注意:需求是固定按钮尺寸,而非文本尺寸。

可行解决方案

通过自定义扩展函数,基于系统原始密度计算尺寸,绕过显示缩放的影响:

val Int.nonScale: Dp
    @Composable get() {
        val density: Float = LocalContext.current.resources.displayMetrics.density
        return (this / density).dp
    }

使用示例

将原始像素值转换为不受缩放影响的Dp,替换原有的固定尺寸设置:

Button(
    modifier = Modifier
        .width(1000.nonScale)
        .height(167.nonScale),
    onClick = { }
) {
    Text(text = "MY TEXT")
}

内容的提问来源于stack exchange,提问作者Sirop4ik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 16:39:51