根据输入数据,我的布局会显示一些视图并隐藏其他视图。
因此,我应该在getVisibility()
之前使用setVisibility()
检查其可见度吗?
延迟时间表现会更好吗?
(我的布局有很多图片,它使活动之间的延迟时间很长。所以这就是我发布这个问题的原因)
答案 0 :(得分:1)
始终检查来源。在这个例子中View.java
public void setVisibility(@Visibility int visibility) {
setFlags(visibility, VISIBILITY_MASK);
}
致电setFlags
:
这会检查标志是否已更改,如果它没有快速返回:
...
int old = mViewFlags;
mViewFlags = (mViewFlags & ~mask) | (flags & mask);
int changed = mViewFlags ^ old;
if (changed == 0) {
return;
}
...
因此,尽管我在性能方面没有为您提供数字,但我认为这种差异可以忽略不计,因为如果将其设置为当前值,它就不会改变。
与此相反,getVisibility
也没有做任何事情:
public int getVisibility() {
return mViewFlags & VISIBILITY_MASK;
}