Я практикую флаттер-веб, копируя шаблоны. Я застрял в рисовании этого фона степени с разделением белого и зеленого.
Как я могу достичь этого?
Редактировать: Мой фрагмент кода и результат на данный момент
Widget body(context) {
return Container(
decoration: BoxDecoration(
gradient: LinearGradient(
colors: [
Colors.white,
Color(0xff00a78e),
Color(0xff00a78e),
],
stops: [0, 0.5, 0.5],
begin: Alignment(0, -1),
end: Alignment(1, 1),
),
.....
.....
вам нужно использовать собственный клипер, этот пример кода может быть хорошим началом для вас:
Stack(
children: <Widget>[
Container(
color: Colors.red,
),
ClipPath(
clipper: CustomeShape(),
child: Container(
color: Colors.white,
padding: EdgeInsets.all(8.0),
width: MediaQuery.of(context).size.width * 0.5,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
ConstrainedBox(
constraints: BoxConstraints(
maxWidth: MediaQuery.of(context).size.width * 0.5),
child: Text(
'Testing clipping with soft wrap',
softWrap: true,
),
),
],
),
),
),
],
)
class CustomeShape extends CustomClipper<Path> {
@override
Path getClip(Size size) {
final path = Path();
path.lineTo(size.width * 2 / 3, 0.0);
path.lineTo(size.width, size.height);
path.lineTo(0.0, size.height);
path.close();
return path;
}
@override
bool shouldReclip(CustomeShape oldClipper) => false;
}
вывод будет выглядеть примерно так:
Спасибо. Ты покажи мне этот продвинутый совет.
Пожалуйста, предоставьте фрагмент кода, чего вы достигли на данный момент.