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.

Cómo probar un Widget BoxDecoration en Flutter

Quiero probar el cambio de color de BoxDecoration, pero no sé cómo obtener el color…

Aquí está el código

testWidgets('CustomCheckbox Test', (WidgetTester tester) async{
    await tester.pumpWidget(Sizer(
        builder: (context, orientation, deviceType) {
          return MaterialApp(
            home: Material(
              child: CustomCheckbox(
                iconColor: Colors.purple,
                activeColor: Colors.yellow,
              )
            ),
          );
        }
    ));

    expect(find.byIcon(Icons.check_outlined),findsOneWidget);

    await tester.tap(find.byType(Container));
    await tester.pump(const Duration(milliseconds: 500));
    final container = tester.widget<container>(find.byType(Container));
    print(container.decoration);
  });

Cuando imprimo container.decoration, obtengo BoxDecoration(color: Color(0x00000000), border: Border.all(BorderSide(Color(0x66c8c8c8), 1.8, BorderStyle.solid)), borderRadius: BorderRadius.circular(4.8)). Quiero obtener el color, incluso si es transparente como aquí, pero no sé cómo acceder a él…

container.decoration.color no funciona, aquí está el error:

Imagen del error

¡Gracias por tu ayuda!

Chris

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para obtener el color de un BoxDecoration, puedes acceder a través de la propiedad gradient, image o color de la instancia de BoxDecoration, dependiendo de cómo se haya definido en el código. En el fragmento de código proporcionado, el color del BoxDecoration no se define directamente, sino que se infiere a través de los colores activo e inactivo del widget CustomCheckbox. Por lo tanto, para obtener el color activo, puedes acceder a la propiedad activeColor de la instancia de CustomCheckbox o a la propiedad color de la instancia de BoxDecoration (container.decoration.color) después de tocar el contenedor para activar el cambio de color. Esto debería devolver una instancia de color que luego puedes comprobar en tu caso de prueba.

Comments are closed.