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

比如Android的RecyclerView做下拉刷新

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

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


官方的下拉刷新就很神奇

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

这是很好的非侵入式实现

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

原理大概就是

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

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

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

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

进入下拉刷新状态


如果设计成侵入式

我没这么干过

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

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

那就是侵入式了


其实我认为最优的设计

应该是非侵入式的

这样才解耦啊

你可能感兴趣的:(Android)