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 pintor personalizado de arco

Hola chicos, en realidad estaba tratando de lograr lo que se muestra en la captura de pantalla adjunta a continuación, pero no puedo obtener eso debajo del código que estaba usando hasta ahora. En realidad, esto era una lámina inferior, ¿alguien puede ayudarme con esto?

class BNBCustomPainter extends CustomPainter {
  @override
  void paint(Canvas canvas, Size size) {
    Paint paint = Paint()
      ..color = Colors.white
      ..style = PaintingStyle.fill;

<pre><code>Path path = Path();
path.moveTo(0, 0); // Inicio
path.quadraticBezierTo(size.width * 0.20, 0, size.width * 0.35, 0);
path.quadraticBezierTo(size.width * 0.40, 0, size.width * 0.40, 5);
path.arcToPoint(Offset(size.width * 0.60, 5),
    radius: const Radius.circular(20.0), clockwise: false);
path.quadraticBezierTo(size.width * 0.60, 0, size.width * 0.65, 0);
path.quadraticBezierTo(size.width * 0.80, 0, size.width, 0);
path.lineTo(size.width, size.height);
path.lineTo(0, size.height);
path.lineTo(0, 20);
// canvas.drawShadow(path, Colors.black, 5, true);
canvas.drawPath(path, paint);

/*
path.moveTo(0, 0); // Inicio
path.quadraticBezierTo(size.width * 0.20, 0, size.width * 0.40, 0);
path.quadraticBezierTo(size.width * 0.45, 0, size.width * 0.45, 5);
path.arcToPoint(Offset(size.width * 0.55, 5),
    radius: const Radius.circular(20.0), clockwise: false);
path.quadraticBezierTo(size.width * 0.55, 0, size.width * 0.60, 0);
path.quadraticBezierTo(size.width * 0.80, 0, size.width, 0);
path.lineTo(size.width, size.height);
path.lineTo(0, size.height);
path.lineTo(0, 20);
canvas.drawShadow(path, Colors.black, 5, true);
canvas.drawPath(path, paint);
*/
</code></pre>

<p>}</p>

<p>@override
  bool shouldRepaint(CustomPainter oldDelegate) {
    return false;
  }
}

resultado actual -> current result

Tratando de lograr -> enter image description here

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el código proporcionado solo sirve para dibujar una barra de navegación inferior personalizada y no para la hoja inferior como se muestra en la captura de pantalla adjunta. Para lograr la hoja inferior deseada, es posible que debas utilizar el método showModalBottomSheet() proporcionado en Flutter.

    Aquí tienes un ejemplo de cómo puedes usar el método showModalBottomSheet():

    showModalBottomSheet(
        context: context,
        builder: (BuildContext context) {
          return Container(
            height: 200,
            child: Text("Aquí va tu contenido"),
          );
        }
    );
    

    Puedes personalizar el widget Container con los elementos de interfaz de usuario y diseño deseados.

    ¡Espero que esto te ayude!

Comments are closed.