Android material CardView 波纹效果改变内容颜色
Android material CardView ripple effect changes content color
我最近从使用自定义卡片组件转向 material 设计 3 张卡片。令我惊讶的是,当按下卡片时,波纹颜色会改变内容颜色。我在 material-design-components 存储库的目录项目上尝试了这个,卡的行为方式相同。我当前更改波纹颜色和卡片背景的代码:
<style name="Widget.App.Card.Filled" parent="Widget.Material3.CardView.Filled">
<item name="rippleColor">#4D4D4D</item>
<item name="cardBackgroundColor">@android:color/transparent</item>
</style>
我也有一个展示这种行为的演示:https://i.imgur.com/t4WW4CY.mp4。字体颜色根据波纹效果变为浅灰色。我也在使用 material 按钮,但涟漪效应并未影响内容。我正在使用 1.5.0-rc01
.
版本
有没有人知道这是否是有意的,以及我如何只能使用 material 设计组件提供的属性更改印刷机上的背景颜色。
更新:
我的卡片视图 XML(它来自 material-components github + 自定义样式):
<com.google.android.material.card.MaterialCardView
style="@style/Widget.App.Card.Filled"
android:id="@+id/card"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.4"
android:layout_margin="16dp"
android:clickable="true"
android:focusable="true"
app:contentPadding="@dimen/cat_card_content_padding">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/cat_card_states_card_content"
android:textAppearance="?attr/textAppearanceBody1"/>
</com.google.android.material.card.MaterialCardView>
我认为这是因为波纹颜色应用于前景而不是背景。所以是的,这是有意为之的,我不认为你可以改变它。
查看源代码:MaterialCardViewHelper.java
注意:这不会发生在按钮中,因为按钮将波纹应用于背景而不是前景。
按钮的源代码:MaterialButtonHelper.java
我最近从使用自定义卡片组件转向 material 设计 3 张卡片。令我惊讶的是,当按下卡片时,波纹颜色会改变内容颜色。我在 material-design-components 存储库的目录项目上尝试了这个,卡的行为方式相同。我当前更改波纹颜色和卡片背景的代码:
<style name="Widget.App.Card.Filled" parent="Widget.Material3.CardView.Filled">
<item name="rippleColor">#4D4D4D</item>
<item name="cardBackgroundColor">@android:color/transparent</item>
</style>
我也有一个展示这种行为的演示:https://i.imgur.com/t4WW4CY.mp4。字体颜色根据波纹效果变为浅灰色。我也在使用 material 按钮,但涟漪效应并未影响内容。我正在使用 1.5.0-rc01
.
有没有人知道这是否是有意的,以及我如何只能使用 material 设计组件提供的属性更改印刷机上的背景颜色。
更新:
我的卡片视图 XML(它来自 material-components github + 自定义样式):
<com.google.android.material.card.MaterialCardView
style="@style/Widget.App.Card.Filled"
android:id="@+id/card"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.4"
android:layout_margin="16dp"
android:clickable="true"
android:focusable="true"
app:contentPadding="@dimen/cat_card_content_padding">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="@string/cat_card_states_card_content"
android:textAppearance="?attr/textAppearanceBody1"/>
</com.google.android.material.card.MaterialCardView>
我认为这是因为波纹颜色应用于前景而不是背景。所以是的,这是有意为之的,我不认为你可以改变它。
查看源代码:MaterialCardViewHelper.java
注意:这不会发生在按钮中,因为按钮将波纹应用于背景而不是前景。
按钮的源代码:MaterialButtonHelper.java