KailuZhang / TabLayoutMediator2

实现TabLayout+RecyclerView的锚点定位
78 stars 18 forks source link

tab栏透明度计算有误 #3

Closed taoranziwangji closed 1 year ago

taoranziwangji commented 1 year ago

根据重叠demo,上滑部分后点击OTHER使rv滑动到最下方列表,然后再手动缓慢往回滑,会导致未到顶部tab栏就会透明度置0的问题

KailuZhang commented 1 year ago

计算RecyclerView偏移量错误,目前没有简便好用的计算RecyclerView偏移量的方法,已修改透明度变化的实现方式,解决此问题。

binding.itemList.addOnScrollListener(object : RecyclerView.OnScrollListener() {
    override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
        val firstVisible = ((recyclerView.layoutManager) as? LinearLayoutManager)?.findFirstVisibleItemPosition()
        val top = recyclerView.getChildAt(0)?.top ?: 0
        binding.tabLayout.alpha = if (firstVisible == 0) abs(top) / 800f else 1f
    }
})
KailuZhang commented 1 year ago

你可以根据实际项目调整代码实现