getting error No TabController for TabBar. but after few seconds data is visible.

314 views
Skip to first unread message

jhon

unread,
Jul 11, 2021, 11:10:07 AM7/11/21
to Flutter Development (flutter-dev)
i have tried this

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"),
        ],
      ),
    );
  }
}

Reply all
Reply to author
Forward
0 new messages