Сброс Motion Layout при навигации между действиями - PullRequest
0 голосов
/ 02 января 2019

Я использую макет движения в своей основной деятельности. Это работает пропеллерно. Однако, когда я перехожу к другим действиям и возвращаюсь к своей основной деятельности, иногда действие сбрасывается, и макет находится в своем начальном состоянии. Как мне этого избежать? Помимо этого У меня также есть еще один вопрос о макете движения, который я задал здесь

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Вы должны сохранить / восстановить прогресс вашего MotionLayout:

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        outState.putFloat("progress", motionLayout.progress)
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        ...
        if (savedInstanceState != null)
            motionLayout.progress = savedInstanceState.getFloat("progress", 0f)
        ...
    }
0 голосов
/ 03 января 2019

Вы можете добавить слушателя перехода к макету движения и сохранить флаг, когда переход завершен.После этого, когда действие воссоздается, вы можете прочитать этот флаг и использовать что-то вроде: motionLayout.setState (R.id.end, ConstraintSet.WRAP_CONTENT, ConstraintSet.WRAP_CONTENT) - где R.id.end - это идентификатор из свойства constraintSetEnd.

...