Antecedentes en diseño de materiales para Android de Mattia Ferigutti | Octubre de 2020

En este artículo, creamos una aplicación para filtrar una lista de elementos.

Bien, suficiente charla. Veamos el código.

Primero creemos nuestro diseño.

activity_main.xml

CON

si alguna vez ha utilizado una parte de la hoja inferior, probablemente sepa que se detiene en el medio cuando la arrastramos hacia abajo. Este componente se utiliza para eliminar este paso intermedio. Por supuesto, no deberíamos usar este parámetro, porque los gestos de deslizamiento deberían estar deshabilitados, pero si desea habilitarlos, este atributo será útil.

Define la altura cuando se contrae la hoja inferior.

Establecer una clase personalizada bloquea cualquier gesto en la hoja inferior.

fragment_window

Aquí tenemos un diseño clásico con el radio de las esquinas en la parte superior, que configuré shape.xml:

Echemos un vistazo a nuestro código Kotlin ahora:

GestureLockedBottomSheetBehavior.kt

Este código bloquea cualquier gesto de la hoja inferior.

Definamos una interfaz para la comunicación entre el fragmento y la actividad, onBottomSheetCallbacks.kt:

MainActivity.kt

CON

Ajustamos la altitud para eliminar las sombras entre la barra de acciones (lo mismo para la barra de herramientas) y el diseño.

Dentro configureBackdrop () obtenemos una instancia BottomSheetBehavior Llame a la interfaz para notificarle de un cambio de estado y configure la hoja inferior extendida de forma predeterminada.

WindowFragment.kt

Ahora podemos implementar nuestro Devoluciones de llamada de OnBottomSheet dentro de la clase de fragmento y recibir notificaciones de cada cambio de estado. Debido a que nuestra clase de fragmento está adjunta a nuestra clase de actividad, podemos acceder al método openBottomSheet () y closeBottomSheet () hemos definido anteriormente.

Echemos un vistazo a nuestra aplicación final.

Puedes encontrar el mío Almacenamiento de GitHub aquí.

Usé los siguientes recursos para escribir este artículo: fuente1, fuente2, fuente3.

Espero que este artículo te haya sido de utilidad. 😊

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *