美文网首页
Android中AppBarLayout使用时的悬浮部分的滑动问

Android中AppBarLayout使用时的悬浮部分的滑动问

作者: 馒头炖土豆 | 来源:发表于2023-02-06 14:57 被阅读0次
AppBarLayout中的悬浮部分我使用了MagicIndicator,我们的测试在实际的使用中发现,MagicIndicator置顶之后再滑动Fragment中的RecyclerView时,在RecyclerView还在向上惯性滑动的时候向下滑动MagicIndicator,这时MagicIndicator也可以滑动,从而导致MagicIndicator和RecyclerView会对向滑动;
我们的需求是MagicIndicator吸顶之后,RecyclerView在滑动过程中MagicIndicator不能滑动

针对这个问题,我使用了AppBarLayout的setDragCallback()方法来解决:
通过对Fragment中RecyclerView的滑动距离进行监听,当滑动距离<=0的时候,表明MagicIndicator已经吸顶了,这时候就禁止掉AppBarLayout的滑动;反之则开启AppBarLayout的滑动

  val params = binding.appbarlayout.layoutParams as CoordinatorLayout.LayoutParams
        val behavior = params.behavior as? AppBarLayout.Behavior
        behavior?.setDragCallback(object : AppBarLayout.Behavior.DragCallback() {
            override fun canDrag(@NonNull appBarLayout: AppBarLayout): Boolean {
                return onlyRvCommentScrollY <= 0 //如果底部列表有滑动距离,就不让tab栏进行滑动
            }
        })

相关文章

网友评论

      本文标题:Android中AppBarLayout使用时的悬浮部分的滑动问

      本文链接:https://www.haomeiwen.com/subject/eastkdtx.html