Пользовательская форма контейнера во флаттере

Хочу сделать такой экран во флаттере:

ht tps:https://stackru.com/images/e3f951c6333a29e1354e6c098430d91d5278a526.jpg

Может ли кто-нибудь подсказать, как я могу сделать такие контейнеры в трепетании и таким дизайном, заранее спасибо.

1 ответ

Вы можете придать своим контейнерам произвольную форму с помощью класса ClipPath.

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: ClipPath(
            child: Container(color: Colors.red),
            clipper: MyCustomClipper(),
          ),
        ),
      ));
  }
}

class MyCustomClipper extends CustomClipper<Path> {
  @override
  Path getClip(Size size) {
    Path path = Path()
        ..lineTo(size.width, 0)
        ..lineTo(size.width, size.height/2)
        ..lineTo(size.width/2, size.height)
        ..lineTo(0, size.height)
        ..close();
      
    return path;
  }

  @override
  bool shouldReclip(CustomClipper<Path> oldClipper) => false;
}
Другие вопросы по тегам