#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'),
),
),
]),
));