Вид переходит в верхний левый угол экрана после анимации после изменения ориентации - PullRequest
0 голосов
/ 22 апреля 2020

Итак, у меня есть анимированный вид, который я хочу вернуть в центр экрана после завершения анимации. Я хочу использовать этот код, чтобы получить центр обзора к центру экрана:

fun gotothecenter(){
    val screencenterX = (FullscreenActivity.metrics.widthPixels - mContentView.width) / 2
    val screencenterY = (FullscreenActivity.metrics.heightPixels - mContentView.height) / 2

    val soultostartx = ObjectAnimator.ofFloat(mContentView, "x", screencenterX.toFloat()).apply {
        duration = 1
    }
    val soultostarty = ObjectAnimator.ofFloat(mContentView, "y", screencenterY.toFloat()).apply {
        duration = 1
    }

    fun toStart() = AnimatorSet().apply {
        play(soultostartx).with(soultostarty)
        start()
    }

toStart()
}

Это работает нормально, если я сохраняю ту же ориентацию экрана, но как только телефон поворачивается в альбомной ориентации рассматриваемый вид переходит в верхний левый угол экрана.

Я использую следующий код в своей основной деятельности для учета изменения конфигурации:

override fun onConfigurationChanged(myConfig: Configuration) {
    super.onConfigurationChanged(myConfig)
    val orient = resources.configuration.orientation
    when (orient) {
        Configuration.ORIENTATION_LANDSCAPE -> {
            (ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
            FullscreenActivity.metrics = DisplayMetrics()
        }
        Configuration.ORIENTATION_PORTRAIT -> {
            (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
            FullscreenActivity.metrics = DisplayMetrics()
        }
        else -> {
            (ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)
            FullscreenActivity.metrics = DisplayMetrics()
        }
    }
}

Любой подсказки чего мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...