在这里记录下编程开发的各种小技巧,帮助他人,成长自己。

  • 关于 View.offsetTopAndBottom (View.offsetLeftAndRight):

    1. 在 layout 之后,View.offsetTopAndBottom() ​的信息就会丢失,所以最好是 onLayout 配合 View.offsetTopAndBottom() ​使用,确保任意时刻,view 总处于我们期望的位置。
    2. 在 Android API Level 23 之前,View.offsetTopAndBottom() 是存在 bug 的,这个 bug 的表现是:当 offset view 到界面外,然后切到后台, 再切回来,此时再调用 View.offsetTopAndBottom() 会无效。原因是它没有调用父 view 的 invalidate() 方法去更新某些私有 flag。幸运的是 Google 提供了 ViewCompat.offsetTopAndBottom()ViewCompat.offsetLeftAndRight() 来修复存在的 bug。而且最好使用 support 24.2.0 以后的包,因为在这个版本后,ViewCompat.offsetTopAndBottom() 才针对各个版本差异化修补,更高效。
      Android