Android-何时调用performTraversals?
我很好奇 调用Android-何时调用performTraversals?,android,views,Android,Views,我很好奇 调用doTraversal->performTraversals的确切情况是什么?由于我的活动量很大,我希望应用程序调用onDraw或sort。performTraversals相当重,它正在尝试/测量是否应该调整视图大小,我猜是这样的。当我在做一些视图时,我不需要它,没有其他视图依赖它,但我想我不能跳过它。因此,在深入研究Android的源代码之前,我想问一下。如果您知道,请随时分享:) 谢谢, DanailperformTraversals()有许多工作,但它的三个主要角色是:
doTraversal->performTraversals
的确切情况是什么?由于我的活动量很大,我希望应用程序调用onDraw
或sort。performTraversals相当重,它正在尝试/测量是否应该调整视图大小,我猜是这样的。当我在做一些视图时,我不需要它,没有其他视图依赖它,但我想我不能跳过它。因此,在深入研究Android的源代码之前,我想问一下。如果您知道,请随时分享:)
谢谢,
DanailperformTraversals()
有许多工作,但它的三个主要角色是:
- 测量视图
- 布局视图
- 画图
每次Android需要重新绘制窗口时,都会调用
performTraversals()
。但这并不意味着每次执行performTraversals()时都会进行度量/布局。如果使用标准视图,则不能跳过performTraversals()
。谢谢您的回答。这是否意味着如果我取消了一些视图可见性,那么将调用ViewRootImpl中所有视图的performTraversals?我的意思是以这种方式触摸任何视图(使其消失,而不是可见性)为什么您需要它消失,而不仅仅是看不见?当然,使视图“消失”会触发重新显示。就像其他与布局相关的动作一样。因为动画。如果我在动画结束时使其消失,则另一个视图(它是动画布局的一部分)将转到正确的位置。如果我让它看不见,就会有一扇奇怪的空窗户,它本不应该在那里。使用GONE后,我不需要更改布局设置。此视图在消失时只影响另一个视图。但它引发了许多其他不必要的行动和估计。这就是为什么我试图更好地掌握Android的工作方式,以便优化我的代码。