首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >顶部圆角的MaterialCardView应该夹住孩子

顶部圆角的MaterialCardView应该夹住孩子
EN

Stack Overflow用户
提问于 2022-04-11 08:12:25
回答 1查看 465关注 0票数 2

MaterialCardView在使用圆角时剪辑它的孩子。如果我使用cardCornerRadius = true (它对卡的所有四个角进行舍入),裁剪的行为就像预期的那样,->子区域不会被绘制到圆角区域之外。如果我尽量少转弯处的话.只有顶部的角,使用ShapeAppearanceModel),然后剪裁部分丢失->一个顶部定位的孩子将被画在圆角区域))。

我意识到MaterialCardView调用了setShapeAppearanceModel内部的setClipToOutline(shapeAppearanceModel.isRoundRect(getBoundsAsRectF()));isRoundRect只有在所有四个角都是圆角的情况下才返回真,所以我尝试在将shapeAppearanceModel设置为顶部圆角之后,在MaterialCardView上应用clipToOutline = true,但没有类似的结果--孩子们仍然能够在父母卡的圆角部分上画出来。

究竟是什么触发了裁剪部分,如何在顶部圆形的MaterialCardView上强制执行?

LE:试错码:

代码语言:javascript
复制
// card is MaterialCardView
card.shapeAppearanceModel =   
    ShapeAppearanceModel()
        .toBuilder()
        .setTopRightCorner(CornerFamily.ROUNDED, cornerPx) // cornerPx = 24dp in pixels
        .setTopLeftCorner(CornerFamily.ROUNDED, cornerPx)
        .build()

card.apply {
    preventCornerOverlap = true
    clipChildren = true
    clipToOutline = true
}
card.invalidateOutline()
EN

回答 1

Stack Overflow用户

发布于 2022-04-11 09:35:57

如果您使用形状外观覆盖以防止儿童与角重叠,则应用以下配置:

  • cardPreventCornerOverlap设置为true
  • ,然后将与角设置相关的所有内容保留为默认设置(只需从设计模式下的文本框中删除值)。

那么你应该看到这样的东西:

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

https://stackoverflow.com/questions/71824566

复制
相关文章

相似问题

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