Подтвердить что ты не робот

Как отключить тень вокруг вида карты в андроиде

Здравствуйте, я работаю над демо-приложением, в котором я использую вид карты в библиотеке поддержки. По умолчанию добавляется тень вокруг него. Я хочу удалить эту тень и должен выглядеть просто.

Я попробовал это, что не работает для меня.

CardView cardView = (CardView) v.findViewById(R.id.cardView);
cardView.setElevation(0);

После этого я получаю сбой

11-06 15:12:17.018: E/AndroidRuntime(24315): FATAL EXCEPTION: main
11-06 15:12:17.018: E/AndroidRuntime(24315): Process: com.xyz, PID: 24315
11-06 15:12:17.018: E/AndroidRuntime(24315): java.lang.NoSuchMethodError: android.support.v7.widget.CardView.setElevation
11-06 15:12:17.018: E/AndroidRuntime(24315):    at com.xyz.adapters.RecycleViewAdapter.onCreateViewHolder(RecycleViewAdapter.java:85)
11-06 15:12:17.018: E/AndroidRuntime(24315):    at com.xyz.adapters.RecycleViewAdapter.onCreateViewHolder(RecycleViewAdapter.java:1)
11-06 15:12:17.018: E/AndroidRuntime(24315):    at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:2915)
11-06 15:12:17.018: E/AndroidRuntime(24315):    at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:2511)
11-06 15:12:17.018: E/AndroidRuntime(24315):    at android.support.v7.widget.LinearLayoutManager$RenderState.next(LinearLayoutManager.java:1425)
11-06 15:12:17.018: E/AndroidRuntime(24315):    at android.support.v7.widget.LinearLayoutManager$RenderState.next(LinearLayoutManager.java:1425)

layout.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    xmlns:app="http://schemas.android.com/apk/res/com.xyz"
    android:id="@+id/cardView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginBottom="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:orientation="horizontal" >

Спасибо заранее.

4b9b3361

Ответ 1

использовать этот атрибут в XML

card_view:cardElevation="0dp"

и запомните добавление xmlns:card_view="http://schemas.android.com/tools" в корневой макет.

ИЛИ вы можете вызвать cardView.setCardElevation(0), чтобы программно отключить тень.

cardView.setElevation() и атрибут CardView android:elevation будут вызывать java.lang.NoSuchMethodError на платформе до Android 5.0

Ответ 2

Попробуйте установить высоту в Xml.

app:cardElevation="0dp"

ИЛИ

cardView.setCardElevation(0);

И проверьте, что вы используете последнюю библиотеку CardView.

Ответ 3

Вы можете иметь это в XML как:

<android.support.v7.widget.CardView
    android:id="@+id/card_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="2dp"
    android:layout_marginRight="2dp"
    app:cardElevation="0dp"
    app:cardCornerRadius="0.5dp"
    app:cardPreventCornerOverlap="false"
    app:cardUseCompatPadding="true"
    >
   </android.support.v7.widget.CardView>

надеюсь, что это поможет вам.

Ответ 4

Вы должны сначала добавить это в родительский макет

xmlns:card_view="http://schemas.android.com/tools"

затем установите высоту, подобную этой

card_view:cardElevation="0dp"

Ответ 5

 <android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:cardElevation="0dp"
        app:cardCornerRadius="2dp">
....`
 </android.support.v7.widget.CardView>

Ответ 6

попробуйте, как это может вам помочь,

CardView cardView = (CardView) v.findViewById(R.id.cardView);
cardView.setCardElevation(0);

Ответ 7

Вы должны использовать следующие атрибуты

<android.support.v7.widget.CardView
    android:id="@+id/card_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:cardElevation="0dp"
    app:cardCornerRadius="0.5dp"
    app:cardPreventCornerOverlap="false"
    >
   </android.support.v7.widget.CardView>

Ответ 8

Просто введите эту строку в свой CardView:

app:cardElevation="0dp"

Надеюсь, это поможет вам.

Ответ 9

CardView устанавливает свою собственную высоту во время инициализации, которая переопределит все, что вы установили из XML. Вы должны указать это как ошибку в chek this

@Override
public void initialize(CardViewDelegate cardView, Context context, int backgroundColor,
        float radius) {
    cardView.setBackgroundDrawable(new RoundRectDrawable(backgroundColor, radius));
    View view = (View) cardView;
    view.setClipToOutline(true);
    view.setElevation(context.getResources().getDimension(R.dimen.cardview_elevation));
}