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

Метод animateTo

Метод animateTo класса ScrollController плавно везёт прокрутку к заданному смещению. Смещение задают в логических пикселях. Длительность и кривая задают скорость.

Синтаксис

controller.animateTo(200, duration: Duration(milliseconds: 300), curve: Curves.ease)

Параметры

Параметр Описание
offset Целевое смещение. Позиционный аргумент.
duration Длительность Duration.
curve Кривая скорости анимации.

Пример

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

import 'package:flutter/material.dart'; class ScrollDemo extends StatefulWidget { @override State<ScrollDemo> createState() => _ScrollDemoState(); } class _ScrollDemoState extends State<ScrollDemo> { late final ScrollController controller = ScrollController(); @override Widget build(BuildContext context) { controller.animateTo(200, duration: Duration(milliseconds: 300), curve: Curves.ease); return ListView.builder( controller: controller, itemCount: 30, itemBuilder: (c, i) => ListTile(title: Text('abcde')), ); } } void main() { runApp(MaterialApp(home: Scaffold(body: ScrollDemo()))); }

На экране список сместится после вызова метода.

Пример

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

import 'package:flutter/material.dart'; class ScrollDemo2 extends StatefulWidget { @override State<ScrollDemo2> createState() => _ScrollDemo2State(); } class _ScrollDemo2State extends State<ScrollDemo2> { late final ScrollController controller = ScrollController(); @override Widget build(BuildContext context) { controller.animateTo(400, duration: Duration(milliseconds: 500), curve: Curves.linear); return ListView.builder( controller: controller, itemCount: 25, itemBuilder: (c, i) => ListTile(title: Text('12345')), ); } } void main() { runApp(MaterialApp(home: Scaffold(body: ScrollDemo2()))); }

На экране видна другая часть списка после второго вызова.

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

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