Pista de máximo a mínimo y lista de mensajes implementada

parent 116b05cb
......@@ -43,3 +43,4 @@ app.*.map.json
/android/app/debug
/android/app/profile
/android/app/release
/android/app/.cxx
import 'package:flutter/material.dart';
import 'dart:math';
class PeponatorMensaje extends StatelessWidget {
final String message;
const PeponatorMensaje({
Key? key,
required this.message,
}) : super(key: key);
@override
Widget build(BuildContext context) {
final messageTextGroup = Flexible(
child: Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Flexible(
flex: 20,
child: ClipRRect(
borderRadius: BorderRadius.circular(50.0), //add border radius
child: Image.network(
"https://cdn.pixabay.com/photo/2015/04/23/22/00/tree-736885__480.jpg",
height: 80.0,
width: 80.0,
fit:BoxFit.cover,
),
)
),
const SizedBox(width: 12.0,),
Transform(
alignment: Alignment.center,
transform: Matrix4.rotationY(pi),
child: CustomPaint(
painter: _Triangle(Colors.grey.shade300),
),
),
Flexible(
flex: 45,
child: Container(
padding: EdgeInsets.all(14),
decoration: BoxDecoration(
color: Colors.grey.shade300,
borderRadius: BorderRadius.only(
topRight: Radius.circular(18),
bottomLeft: Radius.circular(18),
bottomRight: Radius.circular(18),
),
),
child: Text(
message,
style: TextStyle(color: Colors.black, fontFamily: 'Monstserrat', fontSize: 14),
),
),
),
],
)
);
return Padding(
padding: EdgeInsets.only(right: 60.0, left: 18.0, top: 5.0, bottom: 5.0),
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
SizedBox(height: 30),
messageTextGroup,
],
),
);
}
}
class _Triangle extends CustomPainter {
final Color bgColor;
_Triangle(this.bgColor);
@override
void paint(Canvas canvas, Size size) {
var paint = Paint()..color = bgColor;
var path = Path();
path.lineTo(-5, 0);
path.lineTo(0, 10);
path.lineTo(5, 0);
canvas.drawPath(path, paint);
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
return false;
}
}
\ No newline at end of file
import 'package:flutter/material.dart';
\ No newline at end of file
import 'package:flutter/material.dart';
typedef NumberCallback = void Function(int number);
class TecladoNumerico extends StatelessWidget {
final TextEditingController controller;
final NumberCallback? onNumberPress;
final VoidCallback? onBackspacePress;
final VoidCallback? onEnterPress;
final Color numberBackgroundColor;
......@@ -14,11 +17,12 @@ class TecladoNumerico extends StatelessWidget {
const TecladoNumerico({
Key? key,
required this.controller,
this.onNumberPress,
this.onBackspacePress,
this.onEnterPress,
this.numberBackgroundColor = Colors.cyan,
this.backspaceBackgroundColor = Colors.red,
this.enterBackgroundColor = Colors.lightGreen,
this.enterBackgroundColor = Colors.green,
this.numberColor = const Color.fromARGB(255, 255, 255, 255),
this.backspaceColor = const Color.fromARGB(255, 255, 255, 255),
this.enterColor = const Color.fromARGB(255, 255, 255, 255),
......@@ -80,7 +84,9 @@ class TecladoNumerico extends StatelessWidget {
),
),
onPressed: () {
controller.text += number.toString();
if(onNumberPress != null){
onNumberPress!(number);
}
},
child: Text(
number.toString(),
......@@ -106,11 +112,7 @@ class TecladoNumerico extends StatelessWidget {
borderRadius: BorderRadius.all(Radius.circular(16.0))
)
),
onPressed: () {
if(controller.text.isNotEmpty){
controller.text = controller.text.substring(0, controller.text.length-1);
}
},
onPressed: onBackspacePress,
child: Icon(
Icons.backspace_outlined,
color: backspaceColor,
......
import 'package:flutter/material.dart';
import 'dart:math';
class TuMensaje extends StatelessWidget {
final String message;
const TuMensaje({
Key? key,
required this.message
}): super(key: key);
@override
Widget build(BuildContext context) {
final messageTextGroup = Flexible(
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Flexible(
child: Container(
padding: EdgeInsets.all(14),
decoration: BoxDecoration(
color: Colors.blueAccent.shade400,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(18),
bottomLeft: Radius.circular(18),
bottomRight: Radius.circular(18),
),
),
child: Text(
message,
style: TextStyle(color: Colors.white, fontFamily: 'Monstserrat', fontSize: 18),
),
),
),
CustomPaint(painter: _Triangle(Colors.blueAccent.shade400)),
],
));
return Padding(
padding: EdgeInsets.only(right: 18.0, left: 50, top: 5, bottom: 5),
child: Row(
mainAxisAlignment: MainAxisAlignment.end,
children: <Widget>[
SizedBox(height: 30),
messageTextGroup,
],
),
);
}
}
class _Triangle extends CustomPainter {
final Color bgColor;
_Triangle(this.bgColor);
@override
void paint(Canvas canvas, Size size) {
var paint = Paint()..color = bgColor;
var path = Path();
path.lineTo(-5, 0);
path.lineTo(0, 10);
path.lineTo(5, 0);
canvas.drawPath(path, paint);
}
@override
bool shouldRepaint(CustomPainter oldDelegate) {
return false;
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment