侵入式设计和非侵入式设计的理解

比如Android的RecyclerView做下拉刷新

如果你从Adapter内部入手去制作,这叫侵入式

如果像官方的SwipeRefreshLayout一样,这叫非侵入式


官方的下拉刷新就很神奇

他只需要在RecyclerView外面套一层SwipeRefreshLayout,他就拥有了下拉刷新的功能

这是很好的非侵入式实现

我后来自己仿照着这个思路写了一个

原理大概就是

在自定义这个下拉控件的类里

我会通过getChildAt()这个方法拿到RecyclerView

然后调用RecyclerView的api去监听他的下滑距离

在下滑距离为0且正处于下拉手势的时候

进入下拉刷新状态


如果设计成侵入式

我没这么干过

不过可以理解为:任何RecyclerView需要因此作出改变的情况,就是侵入式

比如RecyclerView需要实现某个接口,我们需要自定义RecyclerView,我们需要改变Adapter

那就是侵入式了


其实我认为最优的设计

应该是非侵入式的

这样才解耦啊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值