我试图在CardView上显示徽章(粉红色TextView),如下所示:
没有设置CardView的仰角值,因此它应该是默认值,并且徽章的仰角设置为2dp
。
API Level > 22
没问题,但是API Level <= 22
的徽章如下所示位于CardView下:
当我将徽标的高程值从2dp
更改为2.285738dp
时,它将起作用。
我最初的想法是CardView的默认高程值根据API级别而变化。想要在此处发布以找出更合乎逻辑的原因。
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="72dp"
android:layout_marginStart="@dimen/margin_horizontal_default"
android:layout_marginTop="@dimen/margin_inner_half_default"
android:layout_marginEnd="@dimen/margin_horizontal_half_default"
android:foreground="?android:attr/selectableItemBackground"
app:cardBackgroundColor="?backgroundCardColor"
app:cardCornerRadius="@dimen/card_corner_radius"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/badgeText"
style="@style/TextStyle.InvertedTag"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:layout_marginStart="@dimen/margin_horizontal_half_default"
android:background="@drawable/background_inverted_secondary"
android:elevation="2dp"
android:gravity="center_vertical"
android:paddingStart="12dp"
android:paddingEnd="12dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="KES" />
[请尝试用TextView
替换androidx.TextView
,看看是否可行。
我之前有此问题,并通过在两个项目中都设置elevation
来解决,在后台设置了2sp
,在前台中设置了4sp
。而且效果很好。CardView
的默认值为2dp
。