我对View
类的forceLayout()
、requestLayout()
和invalidate()
方法的角色有点困惑。
应该在什么时候调用它们?
发布于 2014-09-15 18:44:21
为了更好地理解François BOURLIEUX和Dalvik提供的答案,我建议你看看Arpit Mathur提供的这个很棒的视图生命周期图:
发布于 2012-12-13 18:51:19
在这里你可以找到一些响应:http://developer.android.com/guide/topics/ui/how-android-draws.html
对我来说,调用invalidate()
只会刷新视图,而调用requestLayout()
会刷新视图并计算屏幕上视图的大小。
发布于 2014-07-19 08:14:59
在想要重画的视图上使用requestLayout(),它将使其onDraw(Canvas c)被调用,而requestLayout()将再次运行整个布局呈现(测量阶段和定位阶段)。如果您要在运行时更改子视图的大小,但仅在特定情况下,如来自父视图的约束(我的意思是父视图的高度或宽度为WRAP_CONTENT,因此在再次包装它们之前匹配测量子视图),则应该使用它。
https://stackoverflow.com/questions/13856180
复制相似问题