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

Класс ScrollNotification

Класс ScrollNotification ловят через NotificationListener. Поле metrics описывает смещение и границы.

Синтаксис

notification.metrics.pixels

Пример

Давайте выведем pixels в текст:

import 'package:flutter/material.dart'; class NoteProbe extends StatefulWidget { @override State<NoteProbe> createState() => _NoteProbeState(); } class _NoteProbeState extends State<NoteProbe> { double label = 0; @override Widget build(BuildContext context) { return NotificationListener<ScrollNotification>( onNotification: (ScrollNotification n) { setState(() => label = n.metrics.pixels); return false; }, child: Column( children: [ Text('$label'), Expanded(child: ListView(children: List.generate(15, (i) => Text('abcde')))), ], ), ); } } void main() { runApp(MaterialApp(home: Scaffold(body: NoteProbe()))); }

На экране число обновляется при каждом движении списка.

Пример

Давайте проверим depth уведомления:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: NotificationListener<ScrollNotification>( onNotification: (ScrollNotification n) { debugPrint('${n.depth}'); return false; }, child: ListView(children: [Text('12345')]), ), ), ), ); }

На экране список прокручивается, depth пишется в консоль отладки.

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

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