class Homepage extends StatefulWidget {
_HomepageState createState() => _HomepageState();
}
class _HomepageState extends State<Homepage>
with SingleTickerProviderStateMixin {
TabController _tabController;
List<Tab> tabs = [];
int tabCount = 0;
final CollectionReference categoryCollection =
FirebaseFirestore.instance.collection('categories');
@override
void initState() {
super.initState();
categoryTabs();
}
@override
void dispose() {
_tabController.dispose();
super.dispose();
}
void tabSelection() {
setState(() {});
}
Future<void> categoryTabs() async {
await categoryCollection.get().then((QuerySnapshot snapshot) {
if (snapshot.docs.isNotEmpty) {
List<Tab> _tabs = [];
for (int i = 0; i < snapshot.docs.length; i++) {
DocumentSnapshot snap = snapshot.docs[i];
// tabCount++;
_tabs.add(
Tab(
child: Text(snap.get("docid")),
),
);
}
setState(() {
tabCount = _tabs.length;
tabs = _tabs;
_tabController = TabController(vsync: this, length: tabCount);
_tabController.addListener(tabSelection);
});
}
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
bottom: TabBar(
controller: _tabController,
isScrollable: true,
indicatorPadding: EdgeInsets.all(0.0),
tabs: tabs)),
body: TabBarView(
controller: _tabController,
children: <Widget>[
Text("test"),
Text("test"),
Text("test"),
],
),
);
}
}