在今天的开发中,遇到了一个之前没有关注过的细节。那就是我用view.getTop()
来获取view距离屏幕顶部高度,结果发现得到的数值和理论不一致。我们来举个例子吧,比如我们有如下的布局:
1 | <?xml version="1.0" encoding="utf-8"?> |
上面是一个很简单的布局,UI效果图如下:
当我们用tv_01.getTop()
的时候,得到的返回值是0,符合我的想象。但是用tv_02.getTop()
,得到的值也为0。而我原以为tv_02.getTop()
的值为ll_01
的高度,也就是tv_02
距离屏幕顶部的长度。但是结果和我的想象不一致。
后来我才知道原来getTop()
方法返回的是该view距离父容器顶部的距离,所以理所应当tv_02.getTop()
距离ll_02
顶部的距离也为0了,同样的getLeft()
、getBottom()
、getRight()
也是一个道理,以此类推。
那么问题来了,如何按我之前的想法一样,得到tv_02
距离屏幕顶部的值呢?很简单,我们只要tv_02.getTop() + ll_02.getTop()
就好了。相信聪明的你已经懂了。
看来在开发中还有不少的细节需要我们注意,特此一记。