¿Por qué puedo hacer clic en “detrás” de la hoja inferior en Android?

2 minutos de lectura

avatar de usuario de user1865027
usuario1865027

tengo un BottomSheet en mi Actividad.

estoy llamando behavior.setState(BottomSheetBehavior.STATE_EXPANDED); para mostrar la hoja inferior y funciona bien, pero el problema que tengo es que de alguna manera puedo hacer clic en el espacio vacío de mi hoja inferior para activar onClick evento de una vista que está detrás de la hoja inferior.

¿Hay alguna manera de evitar que esto suceda?

  • ¿Qué versión de la biblioteca de soporte está utilizando? ¿Ha actualizado a la última (24.2.1 a partir de ahora)?

    – ianhanniballake

    27/09/2016 a las 22:38

  • sí, estoy usando 24.2.1.

    – usuario1865027

    27/09/2016 a las 22:54

  • Encontré exactamente la misma pregunta que se hizo aquí stackoverflow.com/questions/37596701/… pero parece que todavía no tiene una respuesta

    – usuario1865027

    27/09/2016 a las 22:55

  • ¿Ya encontraste la respuesta?

    – Andrei Solera

    10 de agosto de 2017 a las 14:37

  • esto sigue siendo un problema con las últimas bibliotecas de soporte

    – dazza5000

    22 de noviembre de 2017 a las 16:50

avatar de usuario de lionscribe
escribaleon

Una solución simple es agregar el

Android: se puede hacer clic = “verdadero”

atribuye al diseño que está utilizando para su hoja inferior. De esa forma, capturará todos los clics y no dejará que se filtren. No tiene que establecer un onClick método para ello, ya que no tienes necesidad de manejarlos.

  • Intenté establecer clickable=true en la vista principal, pero no tuve suerte 🙁

    – usuario1865027

    29 de septiembre de 2016 a las 2:01

  • Por favor, publique el diseño.

    – leonscriba

    29 de septiembre de 2016 a las 2:26

  • si android:clickable="false" no funciona, intenta setEnable(false) en los controles en los que se puede hacer clic debajo de la hoja de botones cuando se expande la hoja inferior. Usar slideOffsetpara obtener la dirección de deslizamiento

    – GGK significa Ucrania

    14 de enero de 2020 a las 22:05


  • También puede configurar bottomSheet.setClickable(false);en tu código

    – GGK significa Ucrania

    14 de enero de 2020 a las 22:13


  • @NishchayZacariah Si no se puede hacer clic en una vista, permitirá que el toque vaya a la vista debajo de ella. Por ejemplo, puede tener una vista de imagen en un botón, pero dado que no se puede hacer clic, permite que el clic vaya al botón debajo de él.

    – leonscriba

    26 mayo 2021 a las 20:52

Avatar de usuario de Nisarg Jani
Nisarg-jani

Me enfrenté al mismo problema!

Agregar android:clickable=true a su BottomSheet! ¡Debería verse como a continuación!

<LinearLayout
    android:clickable="true"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/materialWhite"
    android:orientation="vertical"
    app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
</LinearLayout>

¿Ha sido útil esta solución?