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
'programing' 카테고리의 다른 글
일치하는 패턴을 따라 sed 또는 awk a 행으로 인쇄 (0) | 2021.01.16 |
---|---|
각도기를 Enter 키를 누르는 방법은 무엇입니까? (0) | 2021.01.16 |
SQL 언어가 구성되지 않음 (Phpstorm) (0) | 2021.01.16 |
Java 열거를 스트림으로 어떻게 전환합니까? (0) | 2021.01.16 |
Jmap은 덤프를 만들기 위해 연결할 수 없습니다. (0) | 2021.01.16 |