AppLayout的滑动依赖方案

最近一个需求是applayout的两段式下拉,第一次拉出title部分,第二次拉出附属部分,同时下面的scrollView跟随移动
网上最多的是appLayout(仅含有toolbar)+Scroll组件的模式,鲜少有第三者插足。
appLayout的公开方法里不能设置展示高度,从而满足需求,因此最先想到的是自定义,结果因为用的是androidx,在学习大神们自定义applayout的过程中发现,不光applayout及其相关组件要照搬,coordinate这个父组件也要照搬,而且搬的过程中出了岔子,导致搬后的coordinate不好用,于是开始想办法。
1)附属部分放入applayout中,因为有title停留在头部的需求,在使用中发现applayout包含多个View时,如果第一个Toolbar设置了exitUntilCollapsed,下面的东西就不能划出屏幕了,所以此方案不满足要求。
但是当下面的布局放置在Toolbar上方时是可以正常完成滑出的
2)在applayout与scrollView牢不可破的关系中加个第三者
首先给这个View写了一个
然后给scrollView写一个 extends AppBarLayout.ScrollingViewBehavior的
这一步我研究了挺久的,有以下收获:
1、当scrollView全程依赖Applayout时,scrollView的头部是以appLayout的底部为0点,而实去依赖时则以屏幕坐标为准,此处需要注意
2、循环依赖问题的解决思路:第三者模块的Behavior依赖applayout和scrollview,而scrollView仅依赖applayout
3、scrollView的Behavior中的滑动处理思路:
在applayout移动时(没有完全展开时)Behavior的onTouch拿不到触摸,而在onInterceptTouchEvent中则有部分监听可以获取。说是部分监听是在实测一个75dp高度的滑动时发现尽管触摸的很慢但是只打印了三次move的log,我怀疑可能是被applayout的onInterceptTouchEvent拦截了,但是重写这个就要复制很多文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值