web-dev-qa-db-ja.com

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

前もって感謝します。

51
N Sharma

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をスローします

95
Loyea

Xmlで標高を配置してみてください。

app:cardElevation="0dp"

OR

cardView.setCardElevation(0);

そして、最新のCardViewライブラリを使用していることを確認してください。

40
Ashwin S Ashok

CardView内に次の行を配置してください。

app:cardElevation="0dp"

それがあなたを助けることを願っています。

11
Brahem Mohamed

最初にこれを親レイアウトに追加する必要があります

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

次に、このように標高を設定します

card_view:cardElevation="0dp"

4
Udo

次のように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
Hetal1311
 <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>
3
Bhavu

このように試してみてください。

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

次の属性を使用する必要があります

<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>
2
Angel Shah

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));
}
0
sachin10

私の場合、推奨される標高とbackgroundColorを持つ背景アルファの設定のみが影の境界線を非表示にします。

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