Метод scheduleFrameCallback
Метод scheduleFrameCallback миксина SchedulerBinding у
регистрирует колбэк на ближайший кадр. Возвращает id для отмены.
Синтаксис
SchedulerBinding.instance.scheduleFrameCallback((Duration timeStamp) {
// код
})
Параметры
| Параметр | Описание |
|---|---|
callback | Функция с меткой времени кадра. |
Пример
Давайте увеличим счётчик на кадре:
import 'package:flutter/material.dart';
void main() => runApp(MaterialApp(home: Scaffold(body: Center(child: TickLabel()))));
class TickLabel extends StatefulWidget {
const TickLabel({super.key});
@override State<TickLabel> createState() => _TickLabelState();
}
class _TickLabelState extends State<TickLabel> {
int v = 0;
@override void initState() {
super.initState();
SchedulerBinding.instance.scheduleFrameCallback((_) => setState(() => v++));
}
@override Widget build(BuildContext c) => Text(v == 0 ? 'abcde' : '12345');
}
На экране после кадра число сменит текст на '12345'.
Пример
Давайте вызовем scheduleFrameCallback дважды:
import 'package:flutter/material.dart';
void main() {
SchedulerBinding.instance.scheduleFrameCallback((_) { });
runApp(MaterialApp(home: Scaffold(body: Center(child: Text('abcde')))));
}
На экране текст 'abcde'.
Смотрите также
-
миксин
SchedulerBinding,
где объявлен метод -
метод
addPostFrameCallback,
который идёт после отрисовки -
миксин
WidgetsBinding,
объединяет планировщик и виджеты -
виджет
PerformanceOverlay,
который показывает время кадра