繁体   English   中英

Android Jetpack 组合 IconButton 填充

[英]Android Jetpack compose IconButton padding

如何删除 IconButton 中的填充? 我希望我的列中的项目具有相同的开始填充

预览图像

Column(
    modifier = Modifier
        .fillMaxWidth() 
        .padding(horizontal = 16.dp)
) {
    IconButton(onClick = { }) {
        Icon(asset = Icons.Filled.Search)
    }
    Text("Some text")
} 

1.0.0IconButton应用了这个修饰符: IconButtonSizeModifier = Modifier.size(48.dp)
这是由于可访问性触摸目标并允许正确的最小触摸目标大小。

您可以使用以下内容对其进行修改:

IconButton(modifier = Modifier.
        then(Modifier.size(24.dp)),
    onClick = { }) {
    Icon(
        Icons.Filled.Search,
        "contentDescription",
        tint = Color.White)
}

使用.then以正确的顺序应用size很重要。

在此处输入图片说明

CompositionLocalProvider包装IconButton以覆盖LocalMinimumTouchTargetEnforcement的值,该值强制执行最小触摸目标48.dp

CompositionLocalProvider(
    LocalMinimumTouchTargetEnforcement provides false,
) {
    IconButton(onClick = { }) {
        Icon(
            imageVector = Icons.Filled.Search,
            contentDescription = "Search",
        )
    }
}

如果您使用IconButton只是为了处理点击侦听器,而不是:

IconButton(onClick = { // Todo -> handle click }) {
    Icon(asset = Icons.Filled.Search)
}

您可以使用:

Icon(
    asset = Icons.Filled.Search,
    modifier = Modifier.clickable { // Todo -> handle click },
)

通过这种方式,您无需删除额外的填充。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM