Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
258 of 1024 menu
◀ ▶

Класс CustomClipper

Класс CustomClipper считает форму обрезки. Метод getClip возвращает Path по размеру области. Готовый объект передают в clipper у ClipPath.

Синтаксис

class TriClipper extends CustomClipper<Path>

Методы

Метод Описание
getClip Возвращает Path обрезки.
shouldReclip Решает, пересчитывать ли clip.

Пример

Давайте обрежем контейнер треугольником:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: ClipPath( clipper: _TriClipper(), child: Container(width: 180, height: 100, color: Colors.pink), ), ), ), ), ); } class _TriClipper extends CustomClipper<Path> { @override Path getClip(Size size) { final p = Path()..moveTo(size.width/2,0)..lineTo(size.width,size.height)..lineTo(0,size.height)..close(); return p; } @override bool shouldReclip(covariant CustomClipper<Path> old) => false; }

На экране розовый треугольник.

Пример

Давайте изменим контур:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: Center( child: ClipPath( clipper: _TriClipper(), child: Container(width: 180, height: 100, color: Colors.pink), ), ), ), ), ); } class _TriClipper extends CustomClipper<Path> { @override Path getClip(Size size) { final p = Path()..moveTo(size.width/2,0)..lineTo(size.width,size.height)..lineTo(0,size.height)..close(); return p; } @override bool shouldReclip(covariant CustomClipper<Path> old) => false; }

На экране другая форма обрезки.

Смотрите также

  • виджет ClipPath,
    обрезать по своему контуру
  • виджет ClipOval,
    обрезать по овалу
  • виджет Opacity,
    прозрачность дочернего виджета
  • виджет BackdropFilter,
    размыть то, что под дочерним виджетом
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить