Миксин SchedulerBinding
Миксин SchedulerBinding входит в
WidgetsBinding
и управляет очередью кадров.
Колбэк на кадр ставят через
scheduleFrameCallback.
Методы
| Метод | Описание |
|---|---|
scheduleFrameCallback |
Вызывает функцию во время следующего кадра. |
Пример
Давайте запланируем перерисовку через scheduleFrameCallback:
import 'package:flutter/material.dart';
void main() => runApp(MaterialApp(home: Scaffold(body: Center(child: FrameCb()))));
class FrameCb extends StatefulWidget {
const FrameCb({super.key});
@override State<FrameCb> createState() => _FrameCbState();
}
class _FrameCbState extends State<FrameCb> {
int n = 0;
@override void initState() {
super.initState();
SchedulerBinding.instance.scheduleFrameCallback((_) {
setState(() => n = 1);
});
}
@override Widget build(BuildContext c) => Text(n == 0 ? '12345' : 'abcde');
}
На экране сначала '12345', после кадра 'abcde'.
Пример
Давайте запросим ещё один кадр из build:
import 'package:flutter/material.dart';
void main() => runApp(MaterialApp(home: Scaffold(body: Center(child: Text('abcde')))));
void tick() {
SchedulerBinding.instance.scheduleFrameCallback((_) { tick(); });
}
На экране текст 'abcde', tick крутит очередь кадров в фоне.
Смотрите также
-
миксин
WidgetsBinding,
который включаетSchedulerBinding -
метод
addPostFrameCallback,
который срабатывает послеlayout -
метод
scheduleFrameCallback,
который вызывают до отрисовки -
константа
kProfileMode,
когда профилируют кадры