xabad / AndroidProblemSolutionCollection

AndroidProblemSolutionCollection
0 stars 0 forks source link

Attempt to read from field 'int android.view.View.mViewFlags' on a null object reference #2

Open xabad opened 4 years ago

xabad commented 4 years ago

onAnimationEnd()中remove view的崩溃

点这里看分析

问题出现remove view的时候,在dispatchDraw 中改变了viewGroup已有的子view的数量,导致只有N个view,最大索引是N-1,想要获取第N个view,出现了异常。

那么我们可以考虑不在本次执行中,remove view。在下一次的loop消息中执行remove 操作,那么就通过post 或 handler 发送消息来操作view

            mainThreadHandler.post {
                this.removeView(mChildView)
            }