How to hide a View programmatically?

前端 未结 3 1462
野趣味
野趣味 2020-11-27 12:11

In my application, I have 2 LinearLayout\'s right above each other. Via a menu option, I want to be able to make the bottom one disappear, and have the top one

3条回答
  •  温柔的废话
    2020-11-27 12:51

    Kotlin Solution

    view.isVisible = true
    view.isInvisible = true
    view.isGone = true
    
    // For these to work, you need to use androidx and import:
    import androidx.core.view.isVisible // or isInvisible/isGone
    

    Kotlin Extension Solution

    If you'd like them to be more consistent length, work for nullable views, and lower the chance of writing the wrong boolean, try using these custom extensions:

    // Example
    view.hide()
    
    fun View?.show() {
        if (this == null) return
        if (!isVisible) isVisible = true
    }
    
    fun View?.hide() {
        if (this == null) return
        if (!isInvisible) isInvisible = true
    }
    
    fun View?.gone() {
        if (this == null) return
        if (!isGone) isGone = true
    }
    

提交回复
热议问题