在 MaterialCardView 的边界上绘制 ChipGroup 内的 Chip
Draw Chip inside ChipGroup over border of MaterialCardView
我正在为 recyclerview 行制作布局,我希望 ChipGroup 像这个模型一样在 MaterialCard 的边框上绘制:
问题是我使用什么父布局并不重要,或者如果我禁用 clipChildren,芯片永远不会与 MaterialCardView 重叠,如果我用一个简单的按钮替换芯片,它看起来就像我想要的那样。
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.chip.ChipGroup
app:layout_constraintTop_toTopOf="parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
app:singleLine="true">
<com.google.android.material.chip.Chip
android:id="@+id/chip_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false"
android:text="Urgente"
app:chipIcon="@drawable/ic_baseline_circle_24"
app:chipIconSize="16dp"
app:chipIconTint="@android:color/holo_orange_dark"
app:chipStartPadding="6dp" />
<com.google.android.material.chip.Chip
android:id="@+id/chip_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Etiqueta 1" />
<com.google.android.material.chip.Chip
android:id="@+id/chip_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Etiqueta 2" />
</com.google.android.material.chip.ChipGroup>
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_height="72dp"
android:layout_marginTop="22dp"
app:cardCornerRadius="0dp"
app:strokeColor="@android:color/holo_red_light"
app:strokeWidth="2dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
这是它的样子(在 xml 中 ChipGroup 是在 MaterialCardView 之前还是之后都没有关系,如果我把它放在 MaterialCardView 里面它只会在里面绘制)。
这是用 Button 替换 ChipGroup,如您所见,它绘制在 MaterialCardView 的边框上,这正是我想要的。
我正在为 recyclerview 行制作布局,我希望 ChipGroup 像这个模型一样在 MaterialCard 的边框上绘制:
问题是我使用什么父布局并不重要,或者如果我禁用 clipChildren,芯片永远不会与 MaterialCardView 重叠,如果我用一个简单的按钮替换芯片,它看起来就像我想要的那样。
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.google.android.material.chip.ChipGroup
app:layout_constraintTop_toTopOf="parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
app:singleLine="true">
<com.google.android.material.chip.Chip
android:id="@+id/chip_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false"
android:text="Urgente"
app:chipIcon="@drawable/ic_baseline_circle_24"
app:chipIconSize="16dp"
app:chipIconTint="@android:color/holo_orange_dark"
app:chipStartPadding="6dp" />
<com.google.android.material.chip.Chip
android:id="@+id/chip_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Etiqueta 1" />
<com.google.android.material.chip.Chip
android:id="@+id/chip_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Etiqueta 2" />
</com.google.android.material.chip.ChipGroup>
<com.google.android.material.card.MaterialCardView
android:layout_width="match_parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_height="72dp"
android:layout_marginTop="22dp"
app:cardCornerRadius="0dp"
app:strokeColor="@android:color/holo_red_light"
app:strokeWidth="2dp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
这是它的样子(在 xml 中 ChipGroup 是在 MaterialCardView 之前还是之后都没有关系,如果我把它放在 MaterialCardView 里面它只会在里面绘制)。
这是用 Button 替换 ChipGroup,如您所见,它绘制在 MaterialCardView 的边框上,这正是我想要的。