Класс SliverOverlapAbsorberHandle
Класс SliverOverlapAbsorberHandle передаёт высоту перекрытия от внешнего списка к внутреннему.
Его создаёт
NestedScrollView
и читает
SliverOverlapAbsorber,
чтобы внутренний список не прятался под шапкой.
Синтаксис
NestedScrollView.sliverOverlapAbsorberHandleFor(context)
Пример
Давайте оставим место под шапкой внутреннего списка:
import 'package:flutter/material.dart';
void main()
{
runApp(
MaterialApp(
home: Scaffold(
body: NestedScrollView(
headerSliverBuilder: (context, inner) {
return [
SliverOverlapAbsorber(
handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context),
sliver: SliverAppBar(title: Text('abcde'), pinned: true),
),
];
},
body: Builder(
builder: (context) {
return CustomScrollView(
slivers: [
SliverOverlapInjector(
handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context),
),
SliverToBoxAdapter(child: Text('12345')),
],
);
},
),
),
),
),
);
}
На экране шапка 'abcde', а строка '12345' начинается под ней, а не под ней спрятанная.
Смотрите также
-
виджет
SliverOverlapAbsorber,
который забирает высоту перекрытия в ручку -
виджет
NestedScrollView,
который связывает шапку и внутренний список -
виджет
SliverAppBar,
который сжимается при прокрутке -
виджет
CustomScrollView,
который собирает список из слайверов