viewurl是什么(viewurl上网记录清除)
viewurl是什么
1.获取视图的宽度和高度是我们开发中常用的操作,视图本身也提供了获取宽度和高度的方法,比如和、和。但是在使用中,我们会发现在or中获得的宽度和高度实际上是0。那么这两种方法得到的宽度和高度有什么区别呢?为什么用的时候会得到0?这篇文章记录了这个常见的问题。
2.首先,这两种方法都用于获取视图的宽度和高度,不同的是/返回最终的宽度和高度,这是在视图布局期间计算的,因此只能在事后正确获取。
3./返回的是测量过程中计算的宽度和高度。
4.因此,如果需要获取视图的实际宽度,应使用方法;如果需要获得视图的测量宽度,应使用方法。
5.我们可以自己尝试一下,在活动或中获取视图的宽度和高度,发现值为0。通过第一节的解释,我相信你已经发现/的值只能在以后获得,/只能在以后获得,或者无法获得,显然是因为视图尚未测量或布局。
viewurl是什么6.的确,视图的过程和活动的生命周期不是同步执行的,因此不能保证视图在某个生命周期内完成了度量。
7.那么有什么方法可以正确得到视图的宽度和高度呢?这里有几个。
8.这是一种在UI线程中异步执行对象的方法。调用方法时,系统会将对象添加到的消息队列中,并等待它在UI线程空闲时执行。此时,视图已经初始化,可以获得正确的宽度和高度。
9.当获得或失去视图焦点时,系统将调用视图方法。用这种方法,你可以得到视图的宽度和高度。因为根据视图的生命周期,它是在视图的三大工作流之后执行的,然后可以得到视图的宽度和高度。
10.它是一个观察者模式类,用于监视视图树的变化,通过它可以获得视图的宽度和高度。
11.在中,您可以通过方法添加侦听器来侦听视图树的全局事件。当视图树的布局发生变化时,系统将调用侦听器的方法。需要注意的是,如果视图树发生变化,它将被调用。为了防止多次调用此方法,有必要及时移除监视器。
12.以上方法是我通常用来获取视图宽度和高度的方法。事实上,我也可以通过手动调用方法来获得宽度和高度,但我不喜欢使用它,因为我不会使用此方法,并且有时测量不准确。所以我个人觉得以上方法就够了。欢迎交流!