strokeColor и strokeWidth не работают в androidx.cardview.widget.CardView android - PullRequest
2 голосов
/ 30 января 2020

Попытка сделать некоторую границу вокруг cardView (androidx.cardview.widget.CardView)

Вот код:

<androidx.cardview.widget.CardView

    android:id="@+id/cardView"
    android:layout_width="273dp"
    android:layout_height="118dp"
    android:layout_marginStart="9dp"
    android:layout_marginTop="10dp"
    android:layout_marginEnd="9dp"
    android:clickable="true"
    android:focusable="true"
    android:foreground="?android:attr/selectableItemBackground"
    android:orientation="vertical"
    app:cardCornerRadius="8dp"

    android:background="@drawable/fix_border" 
    app:strokeColor="#dedede"
    app:strokeWidth="3dp">

</androidx.cardview.widget.CardView>

Результат:

border not showing

Также пытался использовать пользовательскую фигуру в качестве фона (fix_border.xml), тоже не работает.

fix_border.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke
        android:width="2dp"
        android:color="#dedede" />
    <!--    <solid android:color="#ffffff" />-->
    <padding
        android:bottom="7dp"
        android:left="7dp"
        android:right="7dp"
        android:top="7dp" />
</shape>

Ответы [ 2 ]

2 голосов
/ 30 января 2020

Просто используйте Библиотеку компонентов материалов и MaterialCardView, которая расширяет androidx.cardview.widget.CardView.
Что-то вроде:

    <com.google.android.material.card.MaterialCardView
        app:strokeColor="@color/primaryDarkColor"
        app:strokeWidth="3dp"
        ../>

enter image description here

0 голосов
/ 30 января 2020

Невозможно дать нарисованный фон для CardView (ссылка: v7 проблем с библиотекой карт ), вы можете дать ему app:cardBackgroundColor, но если вам нужен удар, вы можете добавить макет внутри него и добавить нарисованный фон с стоком к нему, и это работает. Итак, что-то вроде:

<androidx.cardview.widget.CardView
    android:id="@+id/cardView"
    android:layout_width="273dp"
    android:layout_height="118dp"
    android:layout_marginStart="9dp"
    android:layout_marginTop="10dp"
    android:layout_marginEnd="9dp"
    android:padding="10dp"
    android:clickable="true"
    android:focusable="true"
    android:orientation="vertical"
    app:cardCornerRadius="8dp">
    <!-- Any layout type here -->
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/fix_border">
        <!-- Build your layout, with a background stroke! -->
    </RelativeLayout>
</androidx.cardview.widget.CardView>
...