Метод 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,
который задаёт поведение или данные прокрутки