В соответствии со спецификацией материала https://material.io/develop/android/components/material-card-view/ 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.
Это известная проблема?