Анимация сворачивания панели инструментов цвет кнопки назад - PullRequest
0 голосов
/ 13 декабря 2018

Я хотел бы анимировать цвет кнопки «Назад» (стрелка) из моего CollapsingToolbarLayout в зависимости от текущего смещения (от свернутого до развернутого):

abstract class CollapsingToolbarListener : AppBarLayout.OnOffsetChangedListener {

    /**
     * @param appBarLayout the AppBarLayout which offset has changed
     * @param verticalOffset the vertical offset for the parent AppBarLayout, in px
     */
    override fun onOffsetChanged(appBarLayout: AppBarLayout, verticalOffset: Int) {
        val offset = Math.abs(verticalOffset).toFloat()
        val minOffset = 0.toFloat()
        val maxOffset = appBarLayout.totalScrollRange.toFloat()

        return when {
            offset < minOffset -> onStateChanged(appBarLayout, 0f)
            offset in minOffset..maxOffset -> onStateChanged(appBarLayout, offset / maxOffset)
            offset > maxOffset -> onStateChanged(appBarLayout, 100f)
            else -> throw IllegalStateException("bad offset: $offset")
        }
    }

    /**
     * @param appBarLayout the AppBarLayout which offset has changed
     * @param offset the vertical offset for the parent AppBarLayout from 0 to 1
     */
    abstract fun onStateChanged(appBarLayout: AppBarLayout, offset: Float)

}

И в моей деятельности:

appbar.addOnOffsetChangedListener(object : CollapsingToolbarListener() {
            override fun onStateChanged(appBarLayout: AppBarLayout, offset: Float) {
                val color = ArgbEvaluator().evaluate(offset, 0x00ff00, 0xff0000) as Int
                val upArrow = resources.getDrawable(R.drawable.abc_ic_ab_back_material)
                upArrow.setColorFilter(color, PorterDuff.Mode.SRC_ATOP)
                supportActionBar?.setHomeAsUpIndicator(upArrow)
            }
        })

Но цвет моей панели инструментов не меняется вообще.Чего мне не хватает?

...