根据材料规格https://material.io/develop/android/components/material-card-view/,colorSurface适用于卡片的背景颜色。
当我们像这样在xml中指定卡片时,它可以正常工作。
当我运行这个程序时,我可以看到颜色表面被正确地应用于上面的卡片。
如果我通过编程方式创建一张卡片,这也能正常工作。
然而,一旦我从MaterialCardView扩展以制作自己的自定义视图,似乎与此相关的主题连接就会丢失。颜色表面没有应用,而卡片默认为白色。
我的自定义视图现在没有应用colorSurface颜色。这是已知的问题吗?
当我们像这样在xml中指定卡片时,它可以正常工作。
<com.google.android.material.card.MaterialCardView
android:layout_width="100dp"
android:layout_height="100dp"></com.google.android.material.card.MaterialCardView>
当我运行这个程序时,我可以看到颜色表面被正确地应用于上面的卡片。
如果我通过编程方式创建一张卡片,这也能正常工作。
addView(MaterialCardView(this).apply {
layoutParams = ViewGroup.LayoutParams(300,300)
})
然而,一旦我从MaterialCardView扩展以制作自己的自定义视图,似乎与此相关的主题连接就会丢失。颜色表面没有应用,而卡片默认为白色。
class CustomView @JvmOverloads constructor(
context: Context?,
attributeSet: AttributeSet? = null,
defStyleAttr: Int = 0
) : MaterialCardView(context, attributeSet, defStyleAttr){
}
<com.seed.formviewactivity.CustomView
android:layout_width="100dp"
android:layout_height="100dp"></com.seed.formviewactivity.CustomView>
我的自定义视图现在没有应用colorSurface颜色。这是已知的问题吗?
R.attr.materialCardViewStyle
用作defStyleAttr
的默认值,而不是0。 - Gabriele Mariotti