Класс PageController
Класс PageController передают в controller у PageView. Начальная страница задаётся в initialPage. Листать программно можно методами nextPage, jumpToPage и другими.
Синтаксис
PageController(initialPage: 0)
Параметры
| Параметр | Описание |
|---|---|
initialPage |
Номер страницы, которую список показывает при первом кадре. |
Методы
| Метод | Описание |
|---|---|
animateToPage |
Принимает номер страницы первым аргументом. |
jumpToPage |
Не анимирует переход. Давайте разберём вызов на примерах. |
nextPage |
Длительность и кривая задаются именованными параметрами. |
previousPage |
Возвращает на страницу с меньшим индексом. |
Пример
Давайте откроем вторую страницу сразу:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: PageView(
controller: PageController(initialPage: 1),
children: [
Center(child: Text('abcde')),
Center(child: Text('12345')),
],
),
),
);
}
На экране сразу видна вторая подпись.
Пример
Давайте прочитаем текущий индекс в StatefulWidget:
import 'package:flutter/material.dart';
class PageProbe extends StatefulWidget
{
@override
State<PageProbe> createState() => _PageProbeState();
}
class _PageProbeState extends State<PageProbe>
{
late final PageController controller = PageController();
@override
Widget build(BuildContext context)
{
var res = controller.initialPage;
return Text('$res');
}
}
void main()
{
runApp(MaterialApp(home: Scaffold(body: Center(child: PageProbe()))));
}
На экране появится число начальной страницы.
Смотрите также
-
метод
custom,
который часто ставят рядом в прокручиваемых экранах -
метод
nextPage,
который дополняет работу с прокруткой -
метод
builder,
который помогает собрать сложный список -
метод
previousPage,
который задаёт поведение или данные прокрутки