Невозможно запустить аниматор в отдельном представлении

Я создал класс, который расширяет PopupView в Kotlin и пытается оживить его появление в библиотеке CircleReveal. Вот функция моего класса

fun show(root: View) { showAtLocation(root, Gravity.CENTER, 0, 0) val cx = (mainView.left + mainView.right) / 2 val cy = (mainView.top + mainView.bottom) / 2 val dx = Math.max(cx, mainView.width - cx) val dy = Math.max(cy, mainView.height - cy) val finalRadius = Math.hypot(dx.toDouble(), dy.toDouble()).toFloat() with (ViewAnimationUtils.createCircularReveal(mainView, cx, cy, 0f, finalRadius)) { interpolator = AccelerateDecelerateInterpolator() duration = 1500 start() } } 

Этот код дает мне следующую ошибку

 java.lang.IllegalStateException: Cannot start this animator on a detached view! at android.view.RenderNode.addAnimator(RenderNode.java:817) at android.view.RenderNodeAnimator.setTarget(RenderNodeAnimator.java:300) at android.view.RenderNodeAnimator.setTarget(RenderNodeAnimator.java:282) at android.animation.RevealAnimator.<init>(RevealAnimator.java:37) at android.view.ViewAnimationUtils.createCircularReveal(ViewAnimationUtils.java:53) at io.codetail.animation.ViewAnimationUtils.createCircularReveal(ViewAnimationUtils.java:74) at io.codetail.animation.ViewAnimationUtils.createCircularReveal(ViewAnimationUtils.java:39) 

Инициализация класса

 class MemberMenu(ctx: Context, val member: Member): PopupWindow(ctx), View.OnClickListener { val mainView: View init { contentView = LayoutInflater.from(ctx).inflate(R.layout.member_menu_layout, null) mainView = contentView.findViewById(R.id.member_menu_view) val size = Helpers.dipToPixels(ctx, 240f) width = size; height = size setBackgroundDrawable(ColorDrawable()) isOutsideTouchable = true isTouchable = true } ....... 

Не уверен, если это правильное решение, но я просто переместил этот код в OnAttachStateChangeListener

  fun show(root: View) { showAtLocation(root, Gravity.CENTER, 0, 0) backgroundView.addOnAttachStateChangeListener(this) } override fun onViewAttachedToWindow(v: View?) { if (v==null) return with(ViewAnimationUtils.createCircularReveal(v, 500, 500, 0f, 500f)) { interpolator = AccelerateDecelerateInterpolator() duration = 2500 start() } } override fun onViewDetachedFromWindow(v: View?) {}