【发布时间】:2022-01-05 19:06:35
【问题描述】:
让我们在片段中有一些视图(例如 LinearLayout 或 ImageView)。如果我以编程方式将此视图的属性(例如更改背景颜色)更改为已设置的相同属性,是否会重绘/重新渲染视图?
双组示例:
binding.someLinearLayout.setBackgroundColor(redColor)
binding.someLinearLayout.setBackgroundColor(grayColor);
binding.someLinearLayout.setBackgroundColor(grayColor);
binding.someLinearLayout.setBackgroundColor(grayColor);
LinearLayout 会重绘两次还是四次?如果 4 次,我应该实施这样的事情来防止它吗?
fun setBackgroundColor(ll: LinearLayout, color: Int){
val current = binding.progressBarChunk4.background as ColorDrawable
if(current.getColor() != color)
ll.setBackgroundColor(color)
}
setBackgroundColor(binding.someLinearLayout, redColor); // Color set
setBackgroundColor(binding.someLinearLayout, grayColor); // Color set
setBackgroundColor(binding.someLinearLayout, grayColor); // ignored
setBackgroundColor(binding.someLinearLayout, grayColor); // ignored
所以基本上我问的是多组相同的属性是否会影响性能,因为每次都会重绘视图。
【问题讨论】:
标签: android kotlin android-drawable