dardo - ListView en una fila Flutter

CorePress2024-01-25  14

Lo que quiero lograr es tener un contenedor estático en la mitad izquierda y una lista desplazable de elementos en la mitad derecha de la pantalla:

|----------------------|
|           |          |
| Container | ListView |
|           |          |
|----------------------|

Es para una aplicación de escritorio, así que me gusta este diseño. Mi implementación: (appStatWidgets es una lista de contenedores con texto)

                          Row(
                              children: [
                            Container(height: 400, width: 400, color: Colors.green),
                            Expanded(
                              child: ListView(
                                children: appStatWidgets,
                              ),
                            )
                          ]),

Pero si hago esto, ListView es invisible y obtengo:

A la ventana gráfica vertical se le dio una altura ilimitada.

Pero pensé que Ampliado solucionaría eso.

Lo que funciona es poner SizedBox en lugar de Expanded, pero eso me da tamaño estático y me gustaría que fuera flexible.



------------------------------------

Usar envoltura retráctil: verdadero ensus parámetros de vista de lista, para evitar que tenga alturas independientes.

Y para que su cuadro Tamaño tome la mitad de la altura, por ejemplo, use mediaQuery para definir la altura. es decir

SizedBox(height: MediaQuery.of(context).size.height * 0.50) Esto establecerá su altura en el 50% de la pantalla.

y para ListView(física, use física: AlwaysScrollableScrollPhysics().

2

Si hago un ajuste retráctil: verdadero, ListView es visible, pero se desborda hacia abajo. Además, no es desplazable

- Ondřej Baštař

28/03/2021 a las 12:32

Manténgalo dentro del cuadro expandido, y lo que se desborda quizás sean los elementos dentro de ListView. Si appStatWidgets tiene columnas dentro o algo así, sus elementos secundarios no están administrados, pero no es el listView en sí. Para desplazarse, establezca el parámetro en la física de la vista de lista: AlwaysScrollableScrollPhysics().

-Huthaifa Muayyad

28 de marzo de 2021 a las 12:51



------------------------------------

  Row(
                          children: [
                        Container(height: 400, width: 400, color: Colors.green),
                        Expanded(
                          child:SizedBox(
                             width:100,
                             heigth:100,
                          child:ListView(
                            children: appStatWidgets,
                          ),
                              )
                        )
                      ]),

Así



------------------------------------

Para una vista de lista en una fila, asegúrese de establecer la dirección de desplazamiento en Axis.horizontal y una cosa más, asegúrese de proporcionarle a su vista de lista un límite vertical, así que colóquela en un contenedor con altura únicamente.

2

Bien, entonces lo puse en un recipiente con una altura. Funciona pero ¿no?¿Conoce alguna forma de hacer que el contenedor tenga el 100% de la altura de su padre? (en términos html)

– Ondřej Baštař

28 de marzo de 2021 a las 12:26

Mediaquery.of(context).size.height como altura del contenedor

- Jagraj Singh

28/03/2021 a las 15:10



------------------------------------

Envuelva la vista de lista con un cuadro de tamaño y proporcione ancho y alto

2

Eso funciona, pero ¿qué pasa si quiero que ocupe la mitad de la pantalla? No puedo usar ancho estático con SizedBox con eso.

– Ondřej Baštař

28/03/2021 a las 12:19

Puedes hacer eso para proporcionar la alineación del eje principal de la fila y eso puede ayudarte

-Ali Hassan

29 de marzo de 2021 a las 7:24

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare