¿Cómo configurar la visibilidad en Kotlin?

2 minutos de lectura

soy nuevo en kotlin. Tengo una vista que necesito mostrar u ocultar de manera condicional.
¿Cómo puedo hacer esto en Kotlin?

En Java:

public void showHide(View view){
    if (view.getVisibility() == View.VISIBLE) {
        view.setVisibility(View.INVISIBLE);
    } else {
        view.setVisibility(View.VISIBLE);
    }
}

avatar de usuario
faisal ahmed

En respuesta a esta respuesta, creo que una forma al estilo de Kotlin para lograr esto también se puede escribir como:

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

  • Creo que tiene sentido crear una función de extensión.

    – Vadim Kótov

    21 de marzo de 2019 a las 16:54

si quieres un icono visible

 ic_back.visibility = View.VISIBLE

y si desea visibilidad GONE, inténtelo:

ic_back.visibility = View.GONE

Simplemente puedes hacerlo.

idTextview.isVisible = true
idTextview.isVisible = false

  • eso es todo, ¿por qué tener más código, cuando puedes hacer menos? :L) gracias, quería publicar esto, pero no lo hice cuando vi tu respuesta… gracias

    – Nenad Štrbić

    14 de marzo de 2021 a las 18:28

Podrías hacer esto en un función de extensión:

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

Se puede usar así:

someView.toggleVisibility()

Puede convertir usando Android Studio: haga clic en el archivo Java que desea convertir, elija Código -> Convertir archivo Java a archivo Kotlin y vea la magia. El resultado es:

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

  • a veces el bibidi bobidi boo no funciona

    – morteza naji

    16 de junio de 2021 a las 6:52

avatar de usuario
jo jo

Puedes usar desde el siguiente código:

fun View.isVisible(): Boolean {
    return visibility == View.VISIBLE
}

Y:

fun View.setVisible(visible: Boolean) {
    visibility = if (visible) {
        View.VISIBLE
    } else {
        View.GONE
    }
}

Y puedes usar:

if (text_view.isVisible()) {
    text_view.setVisible(false)
}

  • a veces el bibidi bobidi boo no funciona

    – morteza naji

    16 de junio de 2021 a las 6:52

avatar de usuario
Rajat

Una forma sencilla en Kotlin:

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

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad