2016-12-04 1 views
0

J'ai un problème vraiment étrange avec Android Transition API. J'ai un sharedElement un ImageView que je laisse le système d'exploitation gérer le Transition entre ces deux éléments. mais je vais avoir cette question bizarre comme montrant dans le gif ci-dessous
One SharedElementImpossible de créer un calque pour CardView Android Transition

le seul element que je suis animating est le AvatarView comme vous pouvez le voir, mais onBackPressed plantage de l'application avec ce journal

java.lang.IllegalStateException: Unable to create layer for CardView 
at android.os.MessageQueue.nativePollOnce(Native Method) 
at android.os.MessageQueue.next(MessageQueue.java:323) 
at android.os.Looper.loop(Looper.java:144) 
at android.app.ActivityThread.main(ActivityThread.java:5845) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687) 

le code qui lance le Activity

premier Layout

<com.fastaccess.ui.widgets.AvatarLayout 
      android:id="@+id/avatarLayout" 
      android:layout_width="48dp" 
      android:layout_height="48dp" 
      android:transitionName="@string/image_transition"/> 

secondes Layout

<com.fastaccess.ui.widgets.AvatarLayout 
      android:id="@+id/avatarLayout" 
      android:layout_width="48dp" 
      android:layout_height="48dp" 
      android:layout_gravity="top" 
      android:transitionName="@string/image_transition"/> 

Et voici comment je commence la Transition

ActivityOptionsCompat options = ActivityOptionsCompat.makeSceneTransitionAnimation(activity, 
sharedElement, ViewHelper.getTransitionName(sharedElement)); 
activity.startActivity(intent, options.toBundle()); 

Code Pas plus de fantaisie après, sauf que je vous appelle supportFinishAfterTransition

Voici une autre gif mais sans SharedElement Transition & cela fonctionne très bien. enter image description here

Pour être honnête, le journal Crash ne dit pas grand-chose, mais je peux confirmer son dû à la Comment TextView est d'être Grand même quand il n'a rien à voir avec le SharedElement mais il semble que ce soit la cause au Crash selon mes tests.
Ce sera génial si quelqu'un a déjà rencontré cela et trouvé un moyen de le réparer comme j'ai abandonné.

Toutes les suggestions seront appréciées.

Répondre

1

First Fix tentative:

mise android:transitionGroup="false" sur le RowItemrootLayout lui-même comme si je posai sur le ViewPager ou sur le RecyclerView le même accident sera happen.Another étape importante a été le retour false sur hasOverlappingRendering() de la coutume TextView classe. ExitTransition d'avoir une couleur de fond flickery Un autre problème étrange Je vais creuser plus sur ce & n'acceptera pas cette réponse jusqu'à ce que je trouve une solution à l'arrière-plan flickery ou quelqu'un d'autre a une approche différente pour résoudre ce problème .

Modifier

L'arrière-plan étrange est en fait lui-même CardView qui détient le CommentTextView.

Modifier

En fait, la CardView est la cause réelle & pas long TextView I'v a changé le Vignettes à LinearLayout comme l'élément racine de mes articles de ligne et enlevé toutes les solutions de contournement i fait ci-dessus et tout semble fonctionner correctement. Je ne sais pas pourquoi cela causerait le problème, je suis quelqu'un qui pourrait vraiment aider & expliquer pourquoi grand CardView causerait ce problème.