Я хотел бы использовать стандартные размеры для флаттера, чтобы обеспечить комфортность сетки 4 пт. Вот один пример того, как это можно сделать:
class Spacing {
const Spacing(double val) : points = val * 4;
final double points;
}
class PtPadding extends Padding {
PtPadding({Spacing padding, Widget child}) : super(padding: padding.points, child: child);
}
PtPadding(padding: Spacing(4), child: Text('Hello'));
// or just with regular old Padding
Padding(padding: Spacing(4).points, child: Text('Hello'));
Это здорово, но мне кажется, что для go способность const
моего специализированного PtPadding
заставляет разработчиков использовать Spacing
. С другой стороны, простое использование Spacing
в конструкторе и доступ к points
не позволяет любому виджету быть «константным». Таким образом, мне кажется, что я должен понизить производительность, если я хочу реализовать этот интервал в моей системе.
У меня мог бы быть класс с stati c const членами, которые указывают на удвоения, но тогда я ограничен доступными размерами (ie У меня может быть только столько stati c членов) и Я также не получаю преимущества от ограничений типа.
Мне интересно, есть ли у кого-нибудь еще мысли о том, как я могу подойти к этому.
Для чего это стоит, я понимаю, почему Spacing(4).points
не является const
(методы по своей сути не являются консистентами), но не уверен, как обойти это.