es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Flutter resizeToAvoidBottomInset true no funciona con ListView Expandido.

El teclado oculta mi ListView (GroupedListView). Creo que es por el Widget Expanded.

Mi cuerpo:

Column(
        children: [
          Expanded(
            child: Padding(
              padding: const EdgeInsets.all(8.0),
              child: GroupedListView<dynamic, string="">(
              controller: _scrollController,
              keyboardDismissBehavior:
                    ScrollViewKeyboardDismissBehavior.onDrag,
              physics: const BouncingScrollPhysics(
                    parent: AlwaysScrollableScrollPhysics()),
              itemBuilder: (context, message) {
                  return ListTile(
                      title: ChatBubble(message),
                  );
                },
              elements: messages,
              groupBy: (message) => DateFormat('MMMM dd,yyyy')
                    .format(message.timestamp.toDate()),
              groupSeparatorBuilder: (String groupByValue) =>
                    getMiddleChatBubble(context, groupByValue),
              itemComparator: (item1, item2) =>
                    item1.timestamp.compareTo(item2.timestamp),
              useStickyGroupSeparators: false,
              floatingHeader: false,
              order: GroupedListOrder.ASC,
              ),
            ),
          ),
          WriteMessageBox(
              group: group,
              groupId: docs[0].id,
              tokens: [widget.friendToken])
        ],
      );

enter image description here

¿Por qué no funciona resizeToAvoidBottomInset?

He abierto un problema para el equipo de Flutter.</dynamic,>

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para solucionar el problema de que el teclado oculte el ListView, puedes intentar envolver la Column con un ListView y establecer la propiedad shrinkWrap de GroupedListView en true. Esto permitirá que el ListView se desplace hacia arriba cuando se muestra el teclado, evitando que oculte cualquier contenido.

    Ejemplo:

    ListView(
      children: [
        Column(
          children: [
            Expanded(
              child: Padding(
                padding: const EdgeInsets.all(8.0),
                child: GroupedListView<dynamic, string="">(
                  shrinkWrap: true, // configurar en true
                  ...
                ),
              ),
            ),
            WriteMessageBox(
              group: group,
              groupId: docs[0].id,
              tokens: [widget.friendToken]
            ),
          ],
        ),
      ],
    )
    

    En cuanto al problema de que resizeToAvoidBottomInset no funcione, parece ser un error en Flutter. Puedes seguir el progreso del problema que has abierto para ver si se soluciona en futuras versiones de Flutter.</dynamic,>

Comments are closed.