Метод nextPage
Метод nextPage класса PageController
листает на страницу со следующим номером.
Длительность и кривая задают скорость.
Синтаксис
controller.nextPage(duration: Duration(milliseconds: 300), curve: Curves.ease)
Параметры
| Параметр | Описание |
|---|---|
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.nextPage(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: 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.nextPage(duration: Duration(milliseconds: 400), curve: Curves.easeIn);
return PageView(
controller: controller,
children: [
Center(child: Text('abcde')),
Center(child: Text('12345')),
],
);
}
}
void main()
{
runApp(MaterialApp(home: Scaffold(body: Pager2())));
}
На экране видна другая страница после второго вызова.
Смотрите также
-
класс
PageController,
который часто ставят рядом в прокручиваемых экранах -
метод
previousPage,
который дополняет работу с прокруткой -
метод
custom,
который помогает собрать сложный список -
метод
animateToPage,
который задаёт поведение или данные прокрутки