drakeet写了个和 RecyclerView 相关的 GenerousRecyclerView , 原文 提到了写这个的目的. 因为需要知道ViewGroup的clipToPadding属性, 所以调用了 ViewGroup.getClipToPadding
, 但这个方法是API level 21引入的. 我看了一下代码, ViewGroup是通过调用setClipToPadding完成相关内容初始化的, setClipToPadding在API level 1就有了, 也就是说我们只要监视setClipToPadding的调用, 就能知道ViewGroup的clipToPadding状态. 如此巧妙, 如果我告诉drakeet, 说不定就能引起他的注意, 出任CEO, 走上人生巅峰.
如果你已经知道我要说什么了, 可以鄙视我.
简单还原一下问题, 我们有一个类SuperClass
现在我们想随时知道 mSuperX
是什么值, 不用反射, 因为父类从不直接修改mSuperX的值, 总是通过 setX
来改, 那么最简单的方法就是继承SuperClass, 重写setX方法, 监听它的改变就好.下面是我们的子类SubClass:
我使用 mSubX
来跟踪 mSuperX