Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
412 of 1024 menu
◀ ▶

Виджет NestedScrollView

Виджет NestedScrollView принимает headerSliverBuilder для шапки и body для основного списка. Часто внутри используют SliverOverlapAbsorber и SliverOverlapInjector.

Синтаксис

NestedScrollView( headerSliverBuilder: (context, inner) => [SliverAppBar(title: Text('abcde'))], body: ListView(), )

Параметры

Параметр Описание
headerSliverBuilder Строит слайверы шапки. Обязательный параметр.
body Виджет тела, обычно список. Обязательный параметр.
controller Контроллер для связанной прокрутки.

Пример

Давайте сделаем шапку и список:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: NestedScrollView( headerSliverBuilder: (BuildContext context, bool inner) { return [ SliverAppBar(title: Text('abcde')), ]; }, body: ListView.builder( itemCount: 15, itemBuilder: (context, index) => ListTile(title: Text('12345')), ), ), ), ), ); }

На экране шапка и список реагируют на один жест прокрутки.

Пример

Давайте добавим плавающую шапку:

import 'package:flutter/material.dart'; void main() { runApp( MaterialApp( home: Scaffold( body: NestedScrollView( headerSliverBuilder: (BuildContext context, bool inner) { return [ SliverAppBar( floating: true, title: Text('abcde'), ), ]; }, body: ListView(children: [Text('12345')]), ), ), ), ); }

На экране шапка может появляться при прокрутке вверх.

Смотрите также

  • виджет CustomScrollView,
    который часто ставят рядом в прокручиваемых экранах
  • виджет PageView,
    который дополняет работу с прокруткой
  • виджет SingleChildScrollView,
    который помогает собрать сложный список
  • метод builder,
    который задаёт поведение или данные прокрутки
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить