programing

Android에서 카드 뷰 주변의 그림자를 비활성화하는 방법

shortcode 2021. 1. 16. 20:23
반응형

Android에서 카드 뷰 주변의 그림자를 비활성화하는 방법


안녕하세요 저는 지원 라이브러리의 카드보기를 사용하는 데모 응용 프로그램을 작업 중입니다. 기본적으로 주변에 그림자를 추가합니다. 이 그림자를 제거하고 싶고 단순 해 보일 것입니다.

나는 나를 위해 작동하지 않는 이것을 시도했습니다.

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" >

미리 감사드립니다.


XML에서이 속성 사용

card_view:cardElevation="0dp"

xmlns:card_view="http://schemas.android.com/tools"루트 레이아웃에 추가 하는 것을 잊지 마십시오.

또는cardView.setCardElevation(0) 프로그래밍 방식으로 그림자를 비활성화하도록 호출 할 수 있습니다 .

cardView.setElevation()메소드 및 CardView 속성 android:elevation은 Android 5.0 이전 플랫폼에서 java.lang.NoSuchMethodError를 발생 시킵니다.


Xml에 고도를 넣으십시오.

app:cardElevation="0dp"

또는

cardView.setCardElevation(0);

그리고 최신 CardView 라이브러리를 사용하고 있는지 확인하십시오.


CardView 안에 다음 줄을 넣으십시오.

app:cardElevation="0dp"

도움이되기를 바랍니다.


다음과 같이 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>

그것이 당신을 도울 수 있기를 바랍니다 !!!


You should first add this to the your parent layout

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

then set the elevation like this

card_view:cardElevation="0dp"


try like this may help you,

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

 <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>

You have to use the following attributes

<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>

CardView sets its own elevation during initialization, which will override whatever you set from XML. You should file this as a bug at 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));
}

In my case, only setting of background alpha with suggested elevation and backgroundColor hide shadow border:

 this.setCardElevation(0);
 this.setCardBackgroundColor(getContext().getResources().getColor(android.R.color.transparent));
 this.getBackground().setAlpha(0);

ReferenceURL : https://stackoverflow.com/questions/26776058/how-to-disable-the-shadow-around-card-view-in-android

반응형