首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android组合IconButton填充

Android组合IconButton填充
EN

Stack Overflow用户
提问于 2020-10-06 09:14:20
回答 3查看 21.5K关注 0票数 21

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

代码语言:javascript
复制
Column(
    modifier = Modifier
        .fillMaxWidth() 
        .padding(horizontal = 16.dp)
) {
    IconButton(onClick = { }) {
        Icon(asset = Icons.Filled.Search)
    }
    Text("Some text")
} 
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-10-06 09:26:03

这个空间是由可访问性、触摸目标和默认的48.dp大小造成的。

1.2.0开始,更改默认行为和删除额外空间的最佳方法是禁用LocalMinimumTouchTargetEnforcement并应用size修饰符:

代码语言:javascript
复制
CompositionLocalProvider(LocalMinimumTouchTargetEnforcement provides false) {
    IconButton(
        modifier = Modifier.size(24.dp),
        onClick = { }
    ) {
        Icon(
            Icons.Filled.Search,
            "contentDescription",
        )
    }
}

注意,因为这样,如果组件放置在布局的边缘附近/靠近另一个组件而没有任何填充,那么就不会有足够的空间用于可访问的触摸目标。

对于IconButtonIconButtonSizeModifier = Modifier.size(48.dp).使用内部修饰符:IconButtonSizeModifier = Modifier.size(48.dp).应用默认大小

您可以使用以下内容来修改它:

代码语言:javascript
复制
IconButton(modifier = Modifier.
        then(Modifier.size(24.dp)),
    onClick = { }) {
    Icon(
        Icons.Filled.Search,
        "contentDescription",
        tint = Color.White)
}

使用size按正确的顺序应用是很重要的。

票数 38
EN

Stack Overflow用户

发布于 2021-11-19 07:01:16

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

代码语言:javascript
复制
CompositionLocalProvider(
    LocalMinimumTouchTargetEnforcement provides false,
) {
    IconButton(onClick = { }) {
        Icon(
            imageVector = Icons.Filled.Search,
            contentDescription = "Search",
        )
    }
}
票数 8
EN

Stack Overflow用户

发布于 2022-07-26 15:06:18

如果您只使用IconButton来处理单击侦听器,而不是:

代码语言:javascript
复制
IconButton(onClick = { // Todo -> handle click }) {
    Icon(asset = Icons.Filled.Search)
}

您可以使用:

代码语言:javascript
复制
Icon(
    asset = Icons.Filled.Search,
    modifier = Modifier.clickable { // Todo -> handle click },
)

这样你就不需要移除多余的垫子了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64222754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档