[ConstraintLayout] addViewでカクつく(止まる)時の改善方法 [Android/Kotlin]

Android

※この記事は初心者が書いています。参考程度に読んでください。
Viewが常にアニメーションするようなゲームアプリを作っています。ConstraintLayoutを使っているのですが、addView時にViewのアニメーションがカツつく(重くなる)現象に遭遇しました。

addView時にアニメーションがカツつく原因はConstraintLayoutの再描画

ネットで調べても有益な情報が見つからなかったのですが、自力で原因を突き止めました。addView時にアニメーションがカツつく原因は、ConstraintLayoutの再描画でした。新しいViewがConstraintLayoutに追加されることで、全体のレイアウトが再描画されるために、アニメーションがカクついているようでした。

改善方法: ConstraintLayoutをFrameLayoutで囲み、FrameLayoutにViewを追加する

ConstraintLayoutに影響を与えないように、Viewを追加すればこの現象は改善します。私は、ConstraintLayoutをFrameLayoutで囲み、FrameLayoutにViewを追加することで解決しました。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    ... >

    <androidx.constraintlayout.widget.ConstraintLayout
        ... >

    </androidx.constraintlayout.widget.ConstraintLayout>

</FrameLayout>

おわりに

この問題を解決するのに丸1日かかりました。何とか乗り越えられてほっとしています。寝ます。

広告