Это мой код: я искал ответы в Интернете, но ничего не получалось. Я был бы рад, если бы вы могли помочь мне с этой проблемой.
Цель:
Будет прокручиваться только одна указанная c вкладка, а остальные вкладки останутся не прокручиваемыми или если мне понадобится для прокрутки.
Я бы с радостью нашел решение ... Я попробую все.
class Menu extends StatelessWidget {
final User user;
Menu({this.user});
@override
Widget build(BuildContext context) {
ScrollController scrollViewController;
TabController _tabController;
return Scaffold(
body: DefaultTabController(
length: 3,
child: NestedScrollView(
controller: scrollViewController,
headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) {
return <Widget>[
new SliverAppBar(
snap: true,
pinned: true,
floating: true,
forceElevated: innerBoxIsScrolled,
expandedHeight: 150,
elevation: 10,
automaticallyImplyLeading: true,
backgroundColor: Colors.blueAccent.withOpacity(0.8),
flexibleSpace: FlexibleSpaceBar(
centerTitle: true,
titlePadding: EdgeInsets.only(bottom: 55),
title: Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
user.profilePicture?.filePath != null
? Container(
margin: EdgeInsets.only(left: 8),
child: ClipOval(
child: FadeInImage.assetNetwork(
placeholder: strings.loadingGif,
image: user.profilePicture.filePath,
width: 32,
height: 32,
fit: BoxFit.contain,
)),
)
: Text(''),
Text('good morning',
style: TextStyle(
color: Colors.white,
fontSize: 16.0,
fontWeight: FontWeight.w600)),
],
),
background: Image.asset(
strings.menuBackgroundImage,
fit: BoxFit.cover,
)),
bottom: TabBar(
labelColor: Colors.white,
indicatorColor: Colors.white,
unselectedLabelColor: Colors.white54,
tabs: <Tab>[
Tab(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('Home',
style: TextStyle(
fontSize: 14, fontWeight: FontWeight.bold)),
Icon(
Icons.home,
),
],
),
),
Tab(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('profile',
style: TextStyle(
fontSize: 14, fontWeight: FontWeight.bold)),
Icon(
Icons.face,
),
],
),
),
Tab(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text('settings',
style: TextStyle(
fontSize: 14, fontWeight: FontWeight.bold)),
Icon(
Icons.settings,
),
],
),
),
],
controller: _tabController,
),
),
];
},
body: TabBarView(
controller: _tabController,
children: <Widget>[
Home(user),
Profile(),
Settings(),
],
),
),
),
);
}
}