【发布时间】:2020-08-11 14:23:32
【问题描述】:
我正在尝试禁用MaterialCardView 的底角圆角,但应用它后,所有角都失去了圆角。
mainCard.shapeAppearanceModel = mainCard.shapeAppearanceModel.toBuilder()
.setBottomLeftCorner(CornerFamily.ROUNDED, 0f)
.setBottomRightCorner(CornerFamily.ROUNDED, 0f)
.setTopLeftCorner(CornerFamily.ROUNDED, resources.getDimension(R.dimen.cornerSize))
.setTopRightCorner(CornerFamily.ROUNDED, resources.getDimension(R.dimen.cornerSize))
.build()
我的布局:
<com.google.android.material.card.MaterialCardView
android:id="@+id/mainCard"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="8dp"
app:cardCornerRadius="12dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white">
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
【问题讨论】:
-
它应该可以工作。您使用的是哪个版本,
R.dimen.cornerSize是什么? -
我在
1.2.0上进行了测试,但我也在1.3.0-alpha02上进行了测试。cornerSize是 12dp,但这也没关系,因为如果我在运行时将所有角设置为该值,则所有舍入都可以正常工作。 -
我无法复制该问题,但尝试使用:
mainCard.shapeAppearanceModel = mainCard.shapeAppearanceModel.toBuilder() .setBottomLeftCorner(CornerFamily.ROUNDED, 0f) .setBottomRightCorner(CornerFamily.ROUNDED, 0f).build() -
对我不起作用...我创建了一个 example 来说明我如何测试它。
-
您的问题不是 cardView。删除
ConstraintLayout中的android:background="@android:color/white"并使用CardView中的app:cardBackgroundColor进行检查。
标签: android android-layout android-cardview material-components-android material-components