Метод jumpTo
Метод jumpTo класса ScrollController
сразу ставит прокрутку на заданное смещение.
Смещение задают в логических пикселях.
Анимации нет.
Синтаксис
controller.jumpTo(120)
Параметры
| Параметр | Описание |
|---|---|
offset |
Смещение прокрутки в логических пикселях. Позиционный аргумент. |
Пример
Давайте вызовем его в простом экране:
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.jumpTo(120);
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.jumpTo(240);
return ListView.builder(
controller: controller,
itemCount: 25,
itemBuilder: (c, i) => ListTile(title: Text('12345')),
);
}
}
void main()
{
runApp(MaterialApp(home: Scaffold(body: ScrollDemo2())));
}
На экране видна другая часть списка после второго вызова.
Смотрите также
-
класс
ScrollController,
который часто ставят рядом в прокручиваемых экранах -
метод
animateTo,
который дополняет работу с прокруткой -
виджет
ReorderableDelayedDragStartListener,
который помогает собрать сложный список -
метод
dispose,
который задаёт поведение или данные прокрутки