Android AppCompatImageView View.Gone状态切换到View.VISIBLE重新layout,Kotlin
import android.content.Context
import android.util.AttributeSet
import android.util.Log
import androidx.appcompat.widget.AppCompatImageView
class MyImageView : AppCompatImageView {
constructor(ctx: Context, attributeSet: AttributeSet) : super(ctx, attributeSet) {
}
override fun layout(l: Int, t: Int, r: Int, b: Int) {
super.layout(l, t, r, b)
Log.d("fly", "layout")
}
override fun setVisibility(visibility: Int) {
super.setVisibility(visibility)
when (visibility) {
VISIBLE ->
Log.d("fly", "VISIBLE")
GONE ->
Log.d("fly", "GONE")
INVISIBLE ->
Log.d("fly", "INVISIBLE")
}
}
}
1、当把一个View从原先的GONE状态动态编码切到VISIBLE之后,View会重新layout。
2、但是,如果View原先是INVISIBLE态,上层代码动态切换到VISIBLE,并不会触发View的layout。