Comportamiento de sombra extraño durante el cambio de tarjeta
He implementado una tarjeta de animación flip, como se describe aquí . Todo parece funcionar bien, excepto las sombras, que se comportan extrañamente durante la vuelta (como se puede ver aquí ). Debido a que estas sombras son causadas por la elevación, este error gráfico desaparece cuando establezco la elevación a 0. Sin embargo, preferiría no desactivar las sombras.
¿Cómo puedo arreglar esta animación sin deshabilitar la elevación, o es imposible?
- El evento de clic de los padres no se activa cuando se hace clic en recyclerview
- Cómo insertar ListView en CardView con barra de desplazamiento fuera de CardView?
- Cómo utilizar RecyclerView y CardView
- ¿Cómo puedo expandir CardViews para mostrar más detalles como las tarjetas de Google Keep?
- CardView tiene margen adicional en cada borde en Pre-Lollipop
FlashcardFragment.java
@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); this.cardFront = (CardView) this.getView().findViewById(R.id.flashcard_front); this.cardBack = (CardView) this.getView().findViewById(R.id.flashcard_back ); this.getView().setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view){ flip(); } }); float scale = this.getResources().getDisplayMetrics().density * 8000; this.cardFront.setCameraDistance(scale); this.cardBack.setCameraDistance(scale); this.cardBack.setAlpha(0.0f); // hides back of card } public void flip() { if (this.flipped) return; this.flipped = true; AnimatorSet animationOut = (AnimatorSet) AnimatorInflater.loadAnimator(this.getContext(), R.animator.flashcard_flip_out); AnimatorSet animationIn = (AnimatorSet) AnimatorInflater.loadAnimator(this.getContext(), R.animator.flashcard_flip_in ); animationOut.setTarget(this.cardFront); animationIn.setTarget(this.cardBack); animationOut.start(); animationIn.start(); }
Flashcard_flip_in.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <objectAnimator android:valueFrom="-180" android:valueTo="0" android:propertyName="rotationY" android:repeatMode="reverse" android:duration="1000" /> <objectAnimator android:valueFrom="0.0" android:valueTo="1.0" android:propertyName="alpha" android:startOffset="500" android:duration="0" /> </set>
Flashcard_clip_out.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" > <objectAnimator android:valueFrom="0" android:valueTo="180" android:propertyName="rotationY" android:duration="1000" /> <objectAnimator android:valueFrom="1.0" android:valueTo="0.0" android:propertyName="alpha" android:startOffset="500" android:duration="0" /> </set>
Fragment_flashcard.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.project.FlashcardFragment" > <include layout="@layout/flashcard" android:id="@+id/flashcard_back" /> <include layout="@layout/flashcard" android:id="@+id/flashcard_front" /> </FrameLayout>
Flashcard.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" android:layout_width="match_parent" android:layout_height="match_parent" card_view:cardCornerRadius="@dimen/card_corner_radius" card_view:cardElevation="@dimen/card_elevation_raised" card_view:cardUseCompatPadding="true" > <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" android:padding="@dimen/padding_default" > <TextView style="@android:style/TextAppearance.Large" android:id="@+id/flashcard_header" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout> </android.support.v7.widget.CardView>
- Deje que un aspecto de vista de tarjeta deshabilitado - ¿Hay un aspecto predeterminado / preferido?
- Android-L CardView Visual Touch Comentarios
- Expanda / contrae la animación en CardView
- La sombra CardView no se procesa cuando se convierte en mapa de bits
- Cómo configurar el relleno para el widget CardView en Android L
- ¿Cómo puedo hacer que WRAP_CONTENT funcione en un RecyclerView
- Android NestedScrollView alinear el contenido en la parte superior
- ¿Cómo puedo obtener la posición seleccionada en un RecyclerView?
Trate de poner su CardView
en un diseño de contenedor:
<FrameLayout android:id="@+id/card_container" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="4dp"> <include layout="@layout/flashcard" /> </FrameLayout>
- Uso de la biblioteca de Android en un proyecto Java regular
- Problema con un gran número de marcadores en el mapa