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

Класс ScrollController

Класс ScrollController передают в controller у ListView. Смещение меняют jumpTo и animateTo. После работы вызывают dispose.

Синтаксис

ScrollController()

Методы

Метод Описание
animateTo Принимает целевое смещение и параметры анимации.
dispose Вызывают в dispose State, когда ScrollController больше не нужен.
jumpTo Принимает смещение в пикселях. Давайте разберём вызов на примерах.

Пример

Давайте прочитаем offset после прокрутки:

import 'package:flutter/material.dart'; class OffsetProbe extends StatefulWidget { @override State<OffsetProbe> createState() => _OffsetProbeState(); } class _OffsetProbeState extends State<OffsetProbe> { late final ScrollController controller = ScrollController(); @override Widget build(BuildContext context) { controller.jumpTo(100); var res = controller.offset; return Text('$res'); } } void main() { runApp(MaterialApp(home: Scaffold(body: Center(child: OffsetProbe())))); }

На экране появится число смещения прокрутки.

Пример

Давайте привяжем controller к списку:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: ListView( controller: ScrollController(), children: List.generate(10, (i) => ListTile(title: Text('abcde'))), ), ), ), ); }

На экране список использует отдельный контроллер.

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

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