FAB на сворачивающейся панели инструментов не показывает значок при изменении после скрытия поведения - PullRequest
0 голосов
/ 26 октября 2018

У меня есть FAB, привязанный к сворачивающейся панели инструментов, поэтому, когда панель инструментов сворачивается, FAB скрывается, когда я нажимаю FAB, значок переключается правильно, но после прокрутки и скрытия FAB, когда я пытаюсь изменить значок, он исчезает, но когда я сворачиваюсь и раскрываю панель инструментов, значок отображается правильно, также я пытался сделать недействительной

Я пытался изменить значок с ресурсом и рисованием, но я получаю тот же результат

Вот GIF с проблемой: https://media.giphy.com/media/1zKOxmWQ8IIpFgtvPM/giphy.gif

Это то, что у меня сейчас есть:

fun setFABState(isFav: Boolean, isSeeing: Boolean = false) {
    launch(UI) {
        fab.setImageDrawable(when {
            isFav && isSeeing -> drawableStarHeart
            isSeeing -> drawableHalfStar
            isFav -> drawableHeartFull
            else -> drawableHeartEmpty
        })
        fab.invalidate()
    }
}

Ответы [ 2 ]

0 голосов
/ 26 октября 2018

Попробуйте извлечь ветвление из параметров метода.У меня есть какая-то проблема с оператором if-else.

fun setFABState(isFav: Boolean, isSeeing: Boolean = false) {
    launch(UI) {
        val icon = when {
            isFav && isSeeing -> drawableStarHeart
            isSeeing -> drawableHalfStar
            isFav -> drawableHeartFull
            else -> drawableHeartEmpty
        } 
        fab.setImageDrawable(icon)
    }
}
0 голосов
/ 26 октября 2018

Единственная возможность, которую я мог видеть, может заключаться в том, что она заканчивается в else -> drawableHeartEmpty. Пожалуйста, отладьте и посмотрите, являются ли оба флага (isFav, isSeeing) ложными.

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