在null对象引用上的TransitionSet ArrayList.size()

Mer*_*rov 10 android kotlin android-transitions

本指南开始使用共享元素和动画实现打开的图像.

https://android-developers.googleblog.com/2018/02/continuous-shared-element-transitions.html

但抓住了一个例外:

java.lang.NullPointerException: Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference
at android.support.transition.TransitionSet.setDuration(TransitionSet.java:196)
at android.support.transition.TransitionSet.setDuration(TransitionSet.java:60)
at android.support.transition.Transition.<init>(Transition.java:278)
at android.support.transition.TransitionSet.<init>(TransitionSet.java:91)
at android.support.transition.TransitionInflater.createTransitionFromXml(TransitionInflater.java:151)
at android.support.transition.TransitionInflater.inflateTransition(TransitionInflater.java:70)
Run Code Online (Sandbox Code Playgroud)

打电话时

TransitionInflater.from(context).inflateTransition(R.transition.my_transition)
Run Code Online (Sandbox Code Playgroud)

Mer*_*rov 24

从谷歌找不到这个问题,这就是为什么我发布这个.

问题在于持续时间参数.

你可以像这样解决它:

需要从xml中删除持续时间,并在代码中创建TransitionSet之后设置它.

val transition = TransitionInflater.from(context).inflateTransition(R.transition.my_transition)
transition.duration = 325
Run Code Online (Sandbox Code Playgroud)

希望帮助了某人.

  • 看起来你也在关注这个博客.https://android-developers.googleblog.com/2018/02/continuous-shared-element-transitions.html.谢谢您的帮助. (2认同)

Anu*_*arg 5

就我而言,发生此错误是因为我从

import android.support.transition.TransitionInflater
Run Code Online (Sandbox Code Playgroud)

虽然它应该从

import android.transition.TransitionInflater
Run Code Online (Sandbox Code Playgroud)

当我修复导入时,错误得到解决。