我有一个在运行时动态添加视图的应用程序。这是使用addView()
到必须放置视图的布局容器完成的。效果很好。
但是有时需要删除所有现有视图,并一次添加所有新视图。
我假设对addView()
的任何调用都会导致布局请求在树上传播。问题在于,这将导致在每次添加视图时进行重新布局,而将它们全部添加然后进行一次重新布局会更加有效。
我可以通过重用视图,仅删除多余的视图,在必要时仅添加新视图等来更有效地做到这一点,但是如果不进行重新演练,直到完成,这将更加简单明了。
有没有实现这一目标的方法?
视图层次结构的每次修改(addView()
/ removeView()
)都会传播布局request,但这只是设置的标志。根据屏幕刷新率,直到以后的预定时间,才会进行完整版式设计。
换句话说,您不必做任何特别的事情。在给定的例程中,您可以根据自己的需要修改视图层次结构(如果需要,可以完全替换所有Views
),这只会生成1个布局通过作为响应。
某些Views
可能会收到多个对onMeasure()
的调用,但这是与单个布局传递相关的正常行为。