Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
429 of 1024 menu
◀ ▶

Метод shouldRebuild

Метод shouldRebuild класса SliverPersistentHeaderDelegate сравнивает новый делегат с предыдущим. Истина собирает шапку заново, ложь оставляет прежнюю.

Синтаксис

bool shouldRebuild(covariant MyHeader oldDelegate)

Параметры

Параметр Описание
oldDelegate Предыдущий delegate того же типа.

Пример

Давайте вызовем его в простом экране:

import 'package:flutter/material.dart'; class RebuildHeader extends SliverPersistentHeaderDelegate { RebuildHeader(this.version); final int version; @override Widget build(BuildContext context, double shrinkOffset, bool overlapsContent) { return Center(child: Text('abcde $version')); } @override double get maxExtent => 60; @override double get minExtent => 30; @override bool shouldRebuild(covariant RebuildHeader oldDelegate) => version != oldDelegate.version; } void main() { runApp( MaterialApp( home: Scaffold( body: CustomScrollView( slivers: [ SliverPersistentHeader(delegate: RebuildHeader(1)), SliverList.list(children: [Text('12345')]), ], ), ), ), ); }

На экране шапка показывает версию delegate.

Пример

Давайте повторим вызов с другими числами:

import 'package:flutter/material.dart'; class RebuildHeader2 extends SliverPersistentHeaderDelegate { @override Widget build(BuildContext context, double shrinkOffset, bool overlapsContent) { return Center(child: Text('12345')); } @override double get maxExtent => 50; @override double get minExtent => 25; @override bool shouldRebuild(covariant RebuildHeader2 oldDelegate) => false; } void main() { runApp( MaterialApp( home: Scaffold( body: CustomScrollView( slivers: [ SliverPersistentHeader(delegate: RebuildHeader2()), SliverList.list(children: [Text('abcde')]), ], ), ), ), ); }

На экране шапка не пересобирается без shouldRebuild true.

Смотрите также

  • метод build,
    который часто ставят рядом в прокручиваемых экранах
  • виджет SliverFillViewport,
    который дополняет работу с прокруткой
  • класс SliverPersistentHeaderDelegate,
    который помогает собрать сложный список
  • виджет SliverOpacity,
    который задаёт поведение или данные прокрутки
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить