¿Existe alguna manera de crear un cuadro de diálogo de selección múltiple dentro de un diálogo de lámina inferior en Android?
Estoy tratando de mover mis diálogos a una hoja inferior (bottom sheet dialog). Pero el problema al que me enfrento es que la hoja inferior no tiene un constructor como en el diálogo de alerta (alert dialog), o al menos eso parece. Además, no puedo encontrar el diálogo multiselección en la hoja inferior (bottom sheet).
val dialogBuilder = MaterialAlertDialogBuilder(this)
dialogBuilder.setTitle(título)
dialogBuilder.setCancelable(false)
dialogBuilder.background =
AppCompatResources.getDrawable(this, R.drawable.bg_white_round_red_ripple)
dialogBuilder.setMultiChoiceItems(
ArrayDeCadenas, ArrayDeBooleanos
) { _, i, b ->
if (b) {
arrayListDeEnteros.add(i)
arrayListDeEnteros.sort()
} else {
arrayListDeEnteros.remove(i)
}
}
dialogBuilder.setPositiveButton("OK") { dialogo, cual ->
val constructorCadena = StringBuilder()
if (arrayListDeEnteros.size > 0) {
for (j in 0 until arrayListDeEnteros.size) {
constructorCadena.append(ArrayDeCadenas[arrayListDeEnteros[j]])
if (j != arrayListDeEnteros.size - 1) {
constructorCadena.append(", ")
}
}
textView.text = constructorCadena.toString()
} else {
textView.text = título
}
}
dialogBuilder.setNegativeButton(
"Cancelar"
) { interfazDeDialogo, _ -> // Descartar el diálogo
interfazDeDialogo.dismiss()
}
val alertDialog = dialogBuilder.create()
alertDialog.show()
¿Hay alguna manera de hacer esto en una hoja inferior o tengo que crear una hoja inferior personalizada que se comporte así? ¿Existe una solución de estilo?
davy.ai
Sí, es posible crear un diálogo de hoja inferior con opciones de selección múltiple similares al diálogo mostrado en el código. Aunque BottomSheetDialog no tiene un constructor, se puede crear programáticamente utilizando un archivo de diseño personalizado.
Para crear un diálogo de hoja inferior personalizado, sigue estos pasos:
En tu actividad, crea un objeto BottomSheetDialog y establece su vista en el archivo de diseño personalizado creado en el paso 1.
Configura el RecyclerView para mostrar las opciones y manejar su selección de acuerdo a tus requisitos.
Agrega onClickListeners a los botones de OK y Cancelar para realizar las acciones deseadas.
La personalización del diálogo de hoja inferior se puede realizar utilizando estilos y temas personalizados. Puedes definir tu propio estilo personalizado y establecerlo como el tema para el BottomSheetDialog utilizando el método setTheme().
Crear un diálogo de hoja inferior personalizado es una mejor solución en este caso, ya que proporciona más flexibilidad y control sobre la apariencia y funcionalidad del diálogo.