Метод animateToPage
Метод animateToPage класса PageController
листает к странице с заданным номером.
Номер считают с нуля.
Длительность и кривая задают, как быстро едет страница.
Синтаксис
controller.animateToPage(1, duration: Duration(milliseconds: 300), curve: Curves.ease)
Параметры
| Параметр | Описание |
|---|---|
page |
Индекс целевой страницы. Позиционный аргумент. |
duration |
Длительность Duration.
|
curve |
Кривая скорости анимации. |
Пример
Давайте вызовем его в простом экране:
import 'package:flutter/material.dart';
class Pager extends StatefulWidget
{
@override
State<Pager> createState() => _PagerState();
}
class _PagerState extends State<Pager>
{
late final PageController controller = PageController();
@override
Widget build(BuildContext context)
{
controller.animateToPage(1, duration: Duration(milliseconds: 300), curve: Curves.ease);
return PageView(
controller: controller,
children: [
Center(child: Text('abcde')),
Center(child: Text('12345')),
],
);
}
}
void main()
{
runApp(MaterialApp(home: Scaffold(body: Pager())));
}
На экране страница сменится после вызова метода контроллера.
Пример
Давайте повторим вызов с другими числами:
import 'package:flutter/material.dart';
class Pager2 extends StatefulWidget
{
@override
State<Pager2> createState() => _Pager2State();
}
class _Pager2State extends State<Pager2>
{
late final PageController controller = PageController(initialPage: 1);
@override
Widget build(BuildContext context)
{
controller.animateToPage(0, duration: Duration(milliseconds: 200), curve: Curves.linear);
return PageView(
controller: controller,
children: [
Center(child: Text('abcde')),
Center(child: Text('12345')),
],
);
}
}
void main()
{
runApp(MaterialApp(home: Scaffold(body: Pager2())));
}
На экране видна другая страница после второго вызова.
Смотрите также
-
метод
previousPage,
который часто ставят рядом в прокручиваемых экранах -
метод
jumpToPage,
который дополняет работу с прокруткой -
метод
nextPage,
который помогает собрать сложный список -
виджет
NotificationListener,
который задаёт поведение или данные прокрутки