Flutter: Material — Widget Divider

2025-01-04T18:00:00-05:00 | 3 minutos de lectura | Actualizado en 2025-01-24T07:42:46-05:00

jaimetellezb
Flutter: Material — Widget Divider

Tabla de Contenido

Introducción


El widget Divider, como su nombre lo indica sirve para dividir componentes o widgets. Por ejemplo, en los listados se puede usar para poner una línea que divida cada una de las filas.


Divider

El widget Divider, no es más que una línea simple que agrupar componentes o secciones.

Casos de uso

Los desarrolladores de Flutter recomiendan usar este widget siempre y cuando no sea posible agrupar los elementos con espacios abiertos y utilizarlos para agrupar no para separar los elementos.

Consideraciones

  • Hacer que los divisores sean visibles pero no con negrita, sino un color más sutil.
  • Utilizarlos para agrupar no para separar.
  • Se pueden usar para dar jerarquía a los componentes y entender su relación padre — hijo.
  • Se puede utilizar Divider para separar secciones grandes, utilizando el ancho completo.
  • También se puede utilizar para separar contenido relacionado.
  • El Divider vertical no se ve la línea pero si genera un espacio.

Ejemplo

import 'package:flutter/material.dart';

/// Clase Screen para widget divider
class DividerScreen extends StatelessWidget {
  const DividerScreen({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Divider Screen'),
      ),
      body: Center(
        child: Padding(
          padding: const EdgeInsets.all(16.0),
          child: Column(
            children: <Widget>[
              const Expanded(
                child: Column(
                  children: [
                    Text(
                        "Amet adipisicing quis qui laborum mollit tempor ipsum et. Fugiat do ea tempor ullamco eu. Proident ad est ex enim magna culpa fugiat."),
                    Divider(
                      color: Colors.red,
                    ),
                    SelectedColor()
                  ],
                ),
              ),
              const Divider(
                height: 20, // alto del widget
                thickness: 5, // ancho de la línea
                indent:
                    50, // espacio en blanco desde la izquierda hasta el divider
                endIndent:
                    50, // espacio en blanco desde la derecha hasta el divider
                color: Colors.black,
              ),
              Expanded(
                child: Row(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: [
                    Container(
                      height: 100,
                      width: 100,
                      decoration: const BoxDecoration(color: Colors.amber),
                    ),
                    const Divider(
                      height: 20,
                      thickness: 10,
                      indent: 10,
                      endIndent: 5,
                      color: Colors.black,
                    ),
                    Container(
                      height: 100,
                      width: 100,
                      decoration: const BoxDecoration(color: Colors.green),
                    )
                  ],
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

class SelectedColor extends StatefulWidget {
  const SelectedColor({super.key});

  @override
  State<SelectedColor> createState() => _SelectedColorState();
}

class _SelectedColorState extends State<SelectedColor> {
  ColorSegment selection = ColorSegment.blue;

  @override
  Widget build(BuildContext context) {
    return SegmentedButton(
      segments: const <ButtonSegment<ColorSegment>>[
        ButtonSegment<ColorSegment>(
          value: ColorSegment.yellow,
          label: Text(
            'Amarillo',
            style: TextStyle(color: Colors.yellow),
          ),
        ),
        ButtonSegment<ColorSegment>(
            value: ColorSegment.blue,
            label: Text(
              'Azul',
              style: TextStyle(color: Colors.blue),
            )),
        ButtonSegment<ColorSegment>(
          value: ColorSegment.red,
          label: Text(
            'Rojo',
            style: TextStyle(color: Colors.red),
          ),
        ),
        ButtonSegment<ColorSegment>(
          value: ColorSegment.green,
          label: Text(
            'Verde',
            style: TextStyle(color: Colors.green),
          ),
        ),
      ],
      selected: <ColorSegment>{selection},
      onSelectionChanged: (Set<ColorSegment> newSelection) {
        setState(() {
          selection = newSelection.first;
        });
      },
    );
  }
}

enum ColorSegment { yellow, blue, red, green }

demo


Conclusión

Para concluir, podemos decir que, El Divider es un widget que nos puede servir en casos que queramos agrupar información relacionada dentro de un mismo fondo, para así no tener que hacer un separado con espacios.

¡Gracias por leer!

Referencias

© 2022 - 2025 jaimetellezb - Compartir guías y tutoriales de programación.

🌱 Powered by Hugo with theme Dream.

Sobre mí

alt

Ingeniero de software

Hola, bienvenidos a mi blog sobre guías y tutoriales de programación.

Aquí podrás encontrar guías y tutoriales sobre algunos temas de tecnología en general. La idea es poder ayudar a que ciertas cosas como configuraciones de nuevas herramientas sean más fáciles de abordar y utilizar. También pequeños proyectos donde se usen diferentes tecnologías como ejemplo.

Enlaces sociales