当前位置: 首页 > 知识库问答 >
问题:

顶部带圆角的MaterialCardView应剪辑子对象

方永贞
2023-03-14

MaterialCardView在使用圆角时剪辑其子级。如果我使用<code>cardCornerRadius=true</code>(将卡的所有四个角舍入),则剪裁行为与预期一样-

我意识到clip MaterialCardView调用<code>setCliptOutline(shapeAppearanceModel.isRoundRect(getBoundsAsRectF()) setShapeApparanceModel中的code>只有在四个角都是圆角的情况下,isRoundRect返回true,因此我尝试在MaterialCardView上应用CliptOutline=true,但没有类似的结果-孩子们仍然能够被画在父母卡的圆形部分。

实际上是什么触发了裁剪部分,我怎样才能把它放在顶部圆形的MaterialCardView上?

LE:试错码:

// 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()
    

共有1个答案

梁丘弘
2023-03-14

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

  • cardPreventCornerOverlap设置为true
  • 然后将与角点设置相关的所有其他设置保留为默认设置(只需在设计模式下从文本框中删除值)
 类似资料:
  • 下面的屏幕截图显示了对1的测试。我想使矩形外的组件的角完全透明 但是,当父面板上有红色背景(或任何非标准颜色)时,您可以看到这种方法的缺点。拐角默认为默认面板颜色(最容易在中看到)。 最终,我希望它能用于父容器中的非标准颜色,但它的部分灵感来自于我需要做什么才能用渐变绘制复制此组件? 有人知道如何让这些角落透明吗? 而是为JTextArea的内部填充设计的,带有背景图像(

  • 我一直在努力使我的警告对话框圆角,但不知何故,我不能。我试过了,但失败了。我试着关注这个博客http://blog.stylingandroid.com/archives/271并以此为基础制作了我的风格。 顺便说一句,现在补充我的问题。我的一些新发现。上面链接中的代码在2.3.3(GB)上运行良好,但在ICS中根本不起作用。一些改变使代码中断。 我想避免创建9个补丁图像,因此我使用形状。9补丁图

  • 问题内容: 我试图通过使用Spannable String来更改我的字符串,使其中间带有数字的徽章。我可以通过设置BackGroundColorSpan突出显示适当的字母/数字,但是需要一些帮助使其更加漂亮。我希望圆角周围有一些填充物。 本文确实与我要执行的操作非常接近:AndroidSpannableString将背景设置为文本的一部分 由于资源与应用程序的交互方式,我确实需要将资源保留为Tex

  • 我想制作圆角对话框;但是在我完成后,它出现了这样的 爪哇 XML 问题是:为什么对话框仍然显示在没有角半径的背景中? 在寻找这个问题的解决方案后,我找到了一些解决方案 1-Android对话框-圆角和透明度 2-带有圆角的Android自定义警报对话框 3-带圆角的Android对话框背景有分层背景 Java-测试上述解决方案后 测试解决方案后的结果 现在对话框根本没有出现!任何人都可以给我解决这

  • MaterialCardView 可以简单快捷地创建材料设计卡片。 样本:

  • 本文向大家介绍Android生成带圆角的Bitmap图片,包括了Android生成带圆角的Bitmap图片的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android生成带圆角的Bitmap图片。分享给大家供大家参考。具体如下: 有时候我们在开发Android应用时,会遇到圆角图片的问题,那么,我们如何在Android中用代码来生成圆角Bitmap图片呢?下面这段代码也许能够帮到你。 该