Виджет SingleChildScrollView
Виджет SingleChildScrollView оборачивает child и включает прокрутку по scrollDirection. Контроллер задают в controller, физику - в physics.
Синтаксис
SingleChildScrollView(
child: Column(children: [Text('abcde')]),
)
Параметры
| Параметр | Описание |
|---|---|
child |
Единственный дочерний виджет, который может быть выше экрана. |
controller |
ScrollController.
|
physics |
ScrollPhysics.
|
padding |
Отступы вокруг содержимого. |
Пример
Давайте прокрутим длинную колонку:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: SingleChildScrollView(
child: Column(
children: List.generate(
20,
(i) => ListTile(title: Text('abcde')),
),
),
),
),
);
}
На экране видны первые строки, остальные появятся при прокрутке.
Пример
Давайте добавим отступы через padding:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: SingleChildScrollView(
padding: EdgeInsets.all(16),
child: Column(
children: [
Text('12345'),
SizedBox(height: 800),
Text('abcde'),
],
),
),
),
);
}
На экране текст с отступами, вторая подпись ниже видимой области до прокрутки.
Смотрите также
-
класс
SliverGridDelegateWithMaxCrossAxisExtent,
который часто ставят рядом в прокручиваемых экранах -
виджет
CustomScrollView,
который дополняет работу с прокруткой -
класс
SliverGridDelegateWithFixedCrossAxisCount,
который помогает собрать сложный список -
виджет
NestedScrollView,
который задаёт поведение или данные прокрутки