You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin新手求助:如何根据条件设置View的可见性?

Kotlin中实现View的显示/隐藏切换

嘿,刚接触Kotlin的话,这个需求其实很好实现,而且Kotlin能让代码比你贴的Java版本更简洁~

首先,先给你一个和你Java代码逻辑完全对应的Kotlin版本:

fun showHide(view: View) {
    if (view.visibility == View.VISIBLE) {
        view.visibility = View.INVISIBLE
    } else {
        view.visibility = View.VISIBLE
    }
}

不过Kotlin有很多语法糖可以让代码更优雅,比如用when表达式替代if-else,逻辑更清晰:

fun showHide(view: View) {
    view.visibility = when(view.visibility) {
        View.VISIBLE -> View.INVISIBLE
        else -> View.VISIBLE
    }
}

更酷的是,你可以给View写一个扩展函数,这样所有View的实例都能直接调用这个切换方法,复用性拉满:

fun View.toggleVisibility() {
    visibility = if (visibility == View.VISIBLE) View.INVISIBLE else View.VISIBLE
}

// 使用的时候直接这样写:
// yourTargetView.toggleVisibility()

如果你的需求是切换VISIBLE和GONE(这俩的区别是INVISIBLE会保留View的占位空间,GONE会完全移除占位),只需要把上面的View.INVISIBLE换成View.GONE就行。

另外,Kotlin还支持直接用布尔值来设置可见性,写法更直观:

// 直接设置可见:
yourTargetView.isVisible = true
// 设置不可见(对应INVISIBLE):
yourTargetView.isInvisible = true
// 设置隐藏(对应GONE):
yourTargetView.isGone = true

用这个特性来写切换逻辑的话,代码会更简洁:

fun showHide(view: View) {
    view.isVisible = !view.isVisible
}

内容的提问来源于stack exchange,提问作者user9238054

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:33:58