Виджет PrimaryScrollController
Виджет PrimaryScrollController кладёт ScrollController в дерево. Scaffold и ListView без своего controller используют его.
Синтаксис
PrimaryScrollController(
controller: scrollController,
child: ListView(),
)
Параметры
| Параметр | Описание |
|---|---|
controller |
Контроллер, который станет primary для поддерева. |
child |
Обычно Scaffold или список.
|
Пример
Давайте прокрутим primary список из кнопки:
import 'package:flutter/material.dart';
class PrimaryDemo extends StatelessWidget
{
final ScrollController controller = ScrollController();
@override
Widget build(BuildContext context)
{
return PrimaryScrollController(
controller: controller,
child: Scaffold(
floatingActionButton: FloatingActionButton(
onPressed: () => controller.jumpTo(200),
child: Icon(Icons.arrow_downward),
),
body: ListView.builder(
itemCount: 40,
itemBuilder: (c, i) => ListTile(title: Text('abcde')),
),
),
);
}
}
void main()
{
runApp(MaterialApp(home: PrimaryDemo()));
}
На экране список прокрутится вниз после нажатия на кнопку.
Пример
Давайте обернём короткий список:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: PrimaryScrollController(
controller: ScrollController(),
child: ListView(children: [Text('12345'), Text('abcde')]),
),
),
),
);
}
На экране две строки используют общий primary контроллер.
Смотрите также
-
виджет
ScrollConfiguration,
который часто ставят рядом в прокручиваемых экранах -
виджет
Scrollable,
который дополняет работу с прокруткой -
виджет
NotificationListener,
который помогает собрать сложный список -
виджет
ListWheelScrollView,
который задаёт поведение или данные прокрутки