Метод toPaint
Метод toPaint класса BorderSide переносит color, width и style BorderSide в объект Paint.
У получившейся кисти Paint тот же цвет и та же толщина, что у стороны.
Кисть передают в команды холста, которые рисуют линию.
Синтаксис
BorderSide(color: Colors.black).toPaint()
Пример
Давайте получим Paint из BorderSide:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: CustomPaint(
size: const Size(220, 100),
painter: _SidePaint(),
),
),
),
),
);
}
class _SidePaint extends CustomPainter
{
@override
void paint(Canvas canvas, Size size)
{
final side = BorderSide(color: Colors.black, width: 3);
final paint = side.toPaint();
canvas.drawLine(Offset(20, 50), Offset(200, 50), paint);
}
@override
bool shouldRepaint(covariant CustomPainter oldDelegate) => false;
}
На экране чёрная линия толщиной 3.
Пример
Давайте утолщим сторону:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: CustomPaint(
size: const Size(220, 100),
painter: _SidePaint2(),
),
),
),
),
);
}
class _SidePaint2 extends CustomPainter
{
@override
void paint(Canvas canvas, Size size)
{
final side = BorderSide(color: Colors.blue, width: 6);
canvas.drawLine(Offset(20, 50), Offset(200, 50), side.toPaint());
}
@override
bool shouldRepaint(covariant CustomPainter oldDelegate) => false;
}
На экране синяя линия потолще.
Смотрите также
-
класс
Border,
четыре стороны рамки -
класс
ShapeDecoration,
фон произвольной формы -
класс
BorderRadius,
скругление углов -
класс
Radius,
радиус одного угла