我想做一些事情来控制View的“隐形状态”。
所以我有一个接收View
的函数,并且有一个可选参数invisibleType
,可以是View.INVISIBLE
或View.GONE
。
我想知道如何限制这两个参数的选项。
像fun makeInvisible(view: View, invisibleType: View.INVISIBLE | View.GONE)
可以用Kotlin完成吗? 还是我最好的选择是创建一个自定义枚举或类似的东西来将选项映射到View.INVISBLE和View.GONE?
答案 0 :(得分:0)
您可以使用枚举或密封类来执行此操作,但可以使用kotlin扩展功能来提高可读性和理解力。
在View Object上添加3个扩展功能。
fun View.visible(): View {
this.visibility = View.VISIBLE
if (this is Group) {
this.requestLayout()
}
return this
}
fun View.inVisible(): View {
this.visibility = View.INVISIBLE
if (this is Group) {
this.requestLayout()
}
return this
}
fun View.gone(): View {
this.visibility = View.GONE
if (this is Group) {
this.requestLayout()
}
return this
}
那么您可以像这样使用
mView.layout_photoid_success.gone()
mView.layoutPhotoReview.visible()