Я создал TabBar
Без Appbar
и Scaffold
и исправил виджет над темой.Теперь, когда я добавил TabBarView
ничего не показывать в tabs
, я создал метод, который получает Index
из TabController
и должен показывать вкладки. Но я больше ничего не вижу:
@override
Widget build(BuildContext context) {
return Material(
color: Theme.of(context).backgroundColor,
child: ListView(children: <Widget>[
Container(
height: 320,
child: new Carousel(
boxFit: BoxFit.cover,
images: [
photoUrl != null
? NetworkImage(photoUrl)
: NetworkImage(photoUrl),
],
autoplay: true,
dotSize: 6,
indicatorBgPadding: 10,
dotColor: Theme.of(context).backgroundColor,
dotBgColor: Theme.of(context).scaffoldBackgroundColor,
animationCurve: Curves.fastOutSlowIn,
animationDuration: Duration(microseconds: 1000),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Padding(
padding: const EdgeInsets.all(8.0),
child:
Text(name, style: Theme.of(context).textTheme.headline),
),
Padding(
padding: const EdgeInsets.fromLTRB(8, 4, 0, 6),
child:
Text(subtitle, style: Theme.of(context).textTheme.body2),
),
],
),
),
Padding(
padding: const EdgeInsets.fromLTRB(3, 8, 3, 4),
child: Divider(),
),
TabBar(
indicatorColor: Theme.of(context).primaryColor,
labelColor: Theme.of(context).buttonColor,
labelStyle: Theme.of(context).textTheme.headline,
unselectedLabelColor: Theme.of(context).splashColor,
controller: _tabController,
tabs: tabs.map((e) => Tab(text: e)).toList(),
),
_tabsContent(),
]));
}
МЕТОД _tabsContent ():
_tabsContent() {
if (_tabController.index == 0) {
return MenuTab();
} else if (_tabController.index == 1) {
return AboutTab(cuisines, dayOfWeek, start, end, desc);
} else if (_tabController.index == 2) {
return ContactTab(
website,
email,
workPhone,
cellPhone,
info,
address1,
address2,
address3,
city,
country,
state,
zipCode,
latitude,
longitude,
socialId,
socialName,
url,
thumbnailsImage);
}
}
TABCONTROLLER:
TabController _tabController;
List tabs;
@override
void dispose() {
SystemChrome.restoreSystemUIOverlays();
SystemChrome.setEnabledSystemUIOverlays(SystemUiOverlay.values);
_tabController.dispose();
super.dispose();
}
void initState() {
super.initState();
SystemChrome.setEnabledSystemUIOverlays([]);
tabs = ['Menu', 'About', 'Contact'];
_tabController = TabController(length: tabs.length, vsync: this);
}