【问题标题】:Unable to create layer for CardView Android Transition无法为 CardView Android 过渡创建图层
【发布时间】:2016-12-04 14:30:45
【问题描述】:

我在使用 Android Transition API 时遇到了一个非常奇怪的问题。我有一个sharedElementImageView,我让操作系统处理这两个元素之间的Transition。但是我遇到了这个奇怪的问题,如下面的 gif 所示

我是animating 的唯一elementAvatarView,如您所见,但是onBackPressed 使用此日志使应用程序崩溃

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)

启动Activity的代码

第一个Layout

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

第二个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"/> 

这就是我如何启动Transition

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

在此之后没有更多花哨的代码,除了我打电话给supportFinishAfterTransition

这是另一个 gif,但没有 SharedElement Transition & 它确实可以正常工作。

老实说,崩溃日志并不能说明太多,但我可以确认它是因为 Comment TextViewLarge 即使它与SharedElement 但根据我的测试,这似乎是崩溃的原因。
如果有人以前遇到过这种情况并在我放弃时找到解决方法,那就太好了。

任何建议将不胜感激。

【问题讨论】:

    标签: android android-animation android-transitions


    【解决方案1】:

    第一次修复尝试:

    RowItem rootLayout 本身上设置android:transitionGroup="false" 就好像我确实在ViewPagerRecyclerView 上设置了它一样会发生同样的崩溃。另一个重要的步骤是在@987654327 上返回false @ 来自自定义 TextView 类。但这会导致ExitTransition 具有闪烁的背景颜色另一个奇怪的问题我将对此进行更多研究并且在找到闪烁背景或其他人的解决方案之前不会接受此答案有不同的方法来解决这个问题。

    编辑

    奇怪的背景实际上是拥有CommentTextViewCardView本身。

    编辑

    实际上,CardView 是真正的原因,而不是很长的 TextView 我已将 CardView 更改为 LinearLayout 作为我的行项目的根元素,并删除了我在上面所做的所有解决方法,一切似乎工作正常。我不知道它为什么会导致这个问题,我希望有人可以真正帮助并详细说明为什么大 CardView 会导致这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多