Android 我可以为参数值提供两个选项吗?

Android 我可以为参数值提供两个选项吗?,android,kotlin,kotlin-android-extensions,Android,Kotlin,Kotlin Android Extensions,我想做一些类似于控制视图的“不可见状态”的事情 因此,我有一个函数接收视图,还有一个可选参数invisibleType,它可以是视图.不可见的或视图.消失了 我想知道如何限制这两个参数的选项。 像fun makeInvisible(视图:视图,不可见类型:view.INVISIBLE | view.GONE) 科特林能做到吗? 或者我最好的选择是创建一个自定义枚举或类似的东西,以将选项映射到View.invisible和View.GONE?您可以使用枚举或密封类来执行此操作,但您可以使用kotl

我想做一些类似于控制视图的“不可见状态”的事情

因此,我有一个函数接收
视图
,还有一个可选参数
invisibleType
,它可以是
视图.不可见的
视图.消失了

我想知道如何限制这两个参数的选项。 像
fun makeInvisible(视图:视图,不可见类型:view.INVISIBLE | view.GONE)

科特林能做到吗?
或者我最好的选择是创建一个自定义枚举或类似的东西,以将选项映射到View.invisible和View.GONE?

您可以使用枚举或密封类来执行此操作,但您可以使用kotlin扩展函数来提高可读性和理解性

在视图对象上创建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()

您可以使用密封类或枚举。@谢谢您的回复。我知道我可以通过枚举或selead类、抽象类、对象来实现这一点。。。有很多方法可以做到这一点,但我想知道是否有一些方法可以做到,比如原始问题中的
fun
,没有语言功能可以将参数值限制为一组特定的值。为什么不做两个函数,
makeInvisible
makeGone
?@Tenfour04我想我想要的是awnser。仅供参考,我不能这样做,因为函数做了一些“神奇的事情”(问题中的函数只是一个例子)。我可以毫无问题地使用enum方法,这只是我的一个好奇,我知道注释和解释注释的IDE插件是可能的。这就是像
@DrawableRes
这样的Android注释的工作原理。但在我看来,只有当你在为成千上万人使用的图书馆工作时,这样的东西才值得。