Я использую виджет NestedScrollView с TabBar, у меня есть две вкладки, и на каждой странице вкладки есть CustomScrollView. Когда я использую три разных ScrollController для каждого из них, они перестают вести себя как традиционная лента, это означает, что когда я прокручиваю какой-то CustomScrollView, заголовок Sliver не скрывается. Как я могу управлять тремя ScrollController по отдельности?
Как использовать разные ScrollController для NestedScrollView и два CustomScrollView внутри таблиц?
Ответы (2)
Можешь показать код? потому что трудно понять ваш случай. В любом случае я покажу вам свой код из одного из своих проектов, может, это поможет
Widget build(BuildContext context) {
widget.userBloc = BlocProvider.of<UserBloc>(context);
return Scaffold(
body: NestedScrollView(
headerSliverBuilder: (context, innerBoxIsScrolled) =>
[
SliverOverlapAbsorber(
// ignore: deprecated_member_use
child: SliverSafeArea(
top: false,
sliver: SliverAppBar(
title: Text(
'',
style: TextStyle(
fontFamily: "Lato",
fontSize: 15,
// fontWeight: FontWeight.bold
),
),
centerTitle: true,
expandedHeight: 100,
floating: true,
flexibleSpace: FlexibleSpaceBar(
titlePadding: EdgeInsets.only(bottom: 25),
title: Text(
'Hospedajes',
style: TextStyle(
fontFamily: "Lato",
fontSize: 24,
fontWeight: FontWeight.bold
),
),
centerTitle: true,
background: GradientBack(height: null,),
),
),
),
handle: NestedScrollView.sliverOverlapAbsorberHandleFor(context),
)
],
body: StreamBuilder(
stream: widget.userBloc.authStatus,
builder: (BuildContext context, AsyncSnapshot snapshot){
switch (snapshot.connectionState){
case ConnectionState.waiting:
return Center(child: CircularProgressIndicator(),);
case ConnectionState.none:
return Center(child: CircularProgressIndicator(),);
case ConnectionState.active:
return showUserLodgingsData(snapshot);
case ConnectionState.done:
return showUserLodgingsData(snapshot);
default:
return showUserLodgingsData(snapshot);
}
},
),
),
);
}
person
Abakim
schedule
13.05.2020
вы должны использовать контроллер вкладок и основной контроллер прокрутки, чтобы решить такую проблему.
person
Rohit Sainik
schedule
10.09.2020