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;
}
}
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()
:Puedes personalizar el widget
Container
con los elementos de interfaz de usuario y diseño deseados.¡Espero que esto te ayude!