Я хотел бы анимировать цвет кнопки «Назад» (стрелка) из моего 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)
}
})
Но цвет моей панели инструментов не меняется вообще.Чего мне не хватает?