Именованный параметр «тело» не определен. ошибка

#flutter #dart

Вопрос:

для тела:строка TabBarView выдает эту ошибку. Android studio предлагает использовать ключ: но это создает ту же проблему. Я действительно новичок, пожалуйста, простите меня, если вопрос не логичен.

  Widget build(context) {
    return Scaffold(
      body: Container(
        padding: const EdgeInsets.all(
          10.0,
        ),
        child: FutureBuilder<Categories>(
          future: _futureCategory,
          builder: (BuildContext context, AsyncSnapshot<Categories> snapshot) {
            if (snapshot.hasData) {
              final category = snapshot.data?.data;

              return ListView.builder(
                itemCount: category!.length,
                itemBuilder: (BuildContext context, id) {
                  return DefaultTabController(
                  length: 6,
                  child: AppBar(
                    centerTitle: true,
                    leading: const Icon(Icons.person_outline),
                    bottom: const PreferredSize(
                        child: TabBar(
                          isScrollable: true,
                          tabs: [
                            Tab(
                              child: Text('Tab'),
                    ),

                          ],
                        ),
                        preferredSize: Size.fromHeight(30.0)),
                  actions: const <Widget>[
                    Padding(
                  padding: EdgeInsets.only(right: 16.0),
                  child: Icon(Icons.add_alert),
                  )

                  ]
                  ),
                      body: TabBarView(
                  children: <Widget>[
                  Container(
                  child: const Center(
                  child: Text('Tab 1'),
                  ),
                  ),
    ]));
                }
              );
 

любая помощь будет оценена по достоинству.

Ответ №1:

Если вы хотите использовать appBar и body подобное, вам придется использовать Scaffold :

 Scaffold(
  appBar: AppBar(),
  body: yourBody()
)
 

Эта часть вашего кода будет выглядеть так:

 return DefaultTabController(
    length: 6,
    child: Scaffold(
      appBar: AppBar(
          centerTitle: true,
          leading: const Icon(Icons.person_outline),
          bottom: const PreferredSize(
              child: TabBar(
                isScrollable: true,
                tabs: [
                  Tab(
                    child: Text('Tab'),
                  ),
                ],
              ),
              preferredSize: Size.fromHeight(30.0)),
          actions: const <Widget>[
            Padding(
              padding: EdgeInsets.only(right: 16.0),
              child: Icon(Icons.add_alert),
            )
          ]),
      body: TabBarView(children: <Widget>[
        Container(
          child: const Center(
            child: Text('Tab 1'),
          ),
        ),
      ]),
    ));