无法在TabBar中显示Tabview,也无法链接内容



我需要一些帮助来实现代码中的TabView。我已经创建了两个独立的类,一个使用defaultTabController和TabBar,另一个使用TabView。在我的Scaffold中,我只能让它显示我的TabBar,但我无法弄清楚如何将内容链接到选项卡。任何帮助都将不胜感激!

import 'package:anestesi_v1/shared/drawer.dart';
import "package:flutter/material.dart";
import 'package:anestesi_v1/shared/appbar.dart';

class BarneAnestesi extends StatelessWidget {
static const String routeName ='/BarneAnestesi';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: ApplicationToolbar(),
backgroundColor: Colors.white,
drawer: MyDrawer(),
body: barnTab(),
extendBody: barnTabView(),
);
}
}
class barnTab extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
color: Colors.red,
child: DefaultTabController(
length: 2,
child: TabBar(
tabs: [
Tab(icon: Icon(Icons.child_care, color: Colors.white,)),
Tab(icon: Icon(Icons.article, color: Colors.white,)),
],
),),
);
}
}
class barnTabView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
child: TabBarView(children: <Widget>[
Text("Test1"),
Text("Test2"),
])
);
}
}

appbar.dart

import 'package:flutter/material.dart';

class ApplicationToolbar extends StatelessWidget with PreferredSizeWidget{
@override
Widget build(BuildContext context) {
return AppBar(
title: Text('Ane'),
backgroundColor: Colors.red[600],
centerTitle: false,
actions: <Widget> [
FlatButton.icon(
icon: Icon(Icons.person, color:Colors.white,),
label: Text('Logg ut',),
textColor: Colors.white,

),
FlatButton.icon(
icon: Icon(Icons.settings, color:Colors.white,),
label: Text("Innstillinger"),
textColor: Colors.white,
)
],);
}
@override
Size get preferredSize => Size.fromHeight(kToolbarHeight);
}

您只需要用DefaultTabController包装Scaffold,因此TabBarTabBarView都位于小部件树中的DefaultTabController之下

import 'package:anestesi_v1/shared/drawer.dart';
import "package:flutter/material.dart";
import 'package:anestesi_v1/shared/appbar.dart';
class BarneAnestesi extends StatelessWidget {
static const String routeName = '/BarneAnestesi';
@override
Widget build(BuildContext context) {
return DefaultTabController(
length: 2,
child: Scaffold(
appBar: ApplicationToolbar(),
backgroundColor: Colors.white,
drawer: MyDrawer(),
body: barnTabView(),
),
);
}
}

class barnTabView extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
child: TabBarView(
children: <Widget>[
Text("Test1"),
Text("Test2"),
]));
}
}

appbar.dart

import 'package:flutter/material.dart';

class ApplicationToolbar extends StatelessWidget with PreferredSizeWidget{
@override
Widget build(BuildContext context) {
return AppBar(
title: Text('Ane'),
backgroundColor: Colors.red[600],
centerTitle: false,
// add here the TabBar widget
bottom: TabBar(
tabs: [
Tab(
icon: Icon(
Icons.child_care,
color: Colors.white,
)),
Tab(
icon: Icon(
Icons.article,
color: Colors.white,
)),
],
),
actions: <Widget> [
FlatButton.icon(
icon: Icon(Icons.person, color:Colors.white,),
label: Text('Logg ut',),
textColor: Colors.white,

),
FlatButton.icon(
icon: Icon(Icons.settings, color:Colors.white,),
label: Text("Innstillinger"),
textColor: Colors.white,
)
],);
}
@override
Size get preferredSize => Size.fromHeight(kToolbarHeight);
}

最新更新