Ser*_*m's 3 optimization android view
我正在试图找出我的自定义视图的优化.我想知道调用View.setVisibility(View.VISIBLE)是否强制Android框架更新视图可见性(< - 强制视图重绘),即使视图已经可见.
看看setVisibility():
public void setVisibility(int visibility) {
setFlags(visibility, VISIBILITY_MASK);
if (mBGDrawable != null) mBGDrawable.setVisible(visibility == VISIBLE, false);
}
Run Code Online (Sandbox Code Playgroud)
它只是调用setFlags(),如果没有任何变化立即返回:
....
int changed = mViewFlags ^ old;
if (changed == 0) {
return;
}
Run Code Online (Sandbox Code Playgroud)
即使它(某种程度上)已经过去了,它也会检查各个标志是否发生变化,只有在其中一个标志不同时才会更新.