Виджет RepaintBoundary
Виджет RepaintBoundary говорит движку рисовать дочерний виджет отдельным слоем.
Когда меняется соседнее дерево, этот слой можно не перерисовывать.
На экране слой не виден: виден только дочерний виджет.
Синтаксис
RepaintBoundary(
child: child,
)
Параметры
| Параметр | Описание |
|---|---|
child |
Дочерний виджет, который перерисовывается отдельным слоем. |
Пример
Давайте положим строку в отдельный слой:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: RepaintBoundary(
child: Text('abcde', style: TextStyle(fontSize: 24)),
),
),
),
));
}
На экране строка 'abcde'. Отдельный слой перерисовки глазом не отличается от обычного текста.
Пример
Давайте так же отделим цветную плашку:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: RepaintBoundary(
child: ColoredBox(
color: Color(0xFF1565C0),
child: Padding(
padding: EdgeInsets.all(12),
child: Text('12345', style: TextStyle(color: Color(0xFFFFFFFF))),
),
),
),
),
),
));
}
На экране синяя плашка со строкой '12345'. Плашка перерисовывается отдельно от остального экрана.
Смотрите также
-
виджет
PhysicalModel,
тень и обрезка по форме -
виджет
ShaderMask,
градиентная маска поверх дочернего виджета -
виджет
Transform,
сдвиг, поворот, масштаб -
виджет
RotatedBox,
поворот на четверти оборота