首页 > 解决方案 > 滚动后颜色 CollapsingToolbarLayout

问题描述

我有一个NestedScrollView,女巫里面有 3 块布局,第一个是白色背景,第二个是灰色,最后一个是黑色。我希望当我CollapsingToolbarLayout触及一个街区时,它会改变他的contentScrim颜色。

现在我正在像这样实施

scrollview.setOnScrollChangeListener { _, _, scrollY, _, oldScrollY ->
            if(scrollY > 1400 && oldScrollY < 1400){
                reveal(collapsing_toolbar_layout, R.color.background)
                toolbar_name.setTextColor(ResourcesCompat.getColor(resources, android.R.color.black, null))
                back_icon.imageTintList = ResourcesCompat.getColorStateList(resources, android.R.color.black, null)
            }
            if(scrollY > 4755 && oldScrollY < 4755){
                reveal(collapsing_toolbar_layout, R.color.lightBlack)
                toolbar_name.setTextColor(ResourcesCompat.getColor(resources, android.R.color.white, null))
                back_icon.imageTintList = ResourcesCompat.getColorStateList(resources, android.R.color.white, null)
            }
            if(oldScrollY > 4755 && scrollY < 4755){
                reveal(collapsing_toolbar_layout, R.color.background)
                toolbar_name.setTextColor(ResourcesCompat.getColor(resources, android.R.color.black, null))
                back_icon.imageTintList = ResourcesCompat.getColorStateList(resources, android.R.color.black, null)
            }
            if(oldScrollY > 1400 && scrollY < 1400){
                reveal(collapsing_toolbar_layout, R.color.colorPrimary)
                toolbar_name.setTextColor(ResourcesCompat.getColor(resources, android.R.color.white, null))
                back_icon.imageTintList = ResourcesCompat.getColorStateList(resources, android.R.color.white, null)
            }
        }

但问题是,并非所有手机都以该值到达区块,有些早一点,有些晚一点。我怎样才能用所有智能手机做到这一点?

标签: androidandroid-toolbarandroid-scrollview

解决方案


推荐阅读