Flutter 如何从另一个dart文件按钮点击事件导航选项卡。我正在使用Tabmanager。。但它只适用于同一个省道锉。我开始颤抖
我的问题是关于 如何从另一个dart文件按钮点击事件导航选项卡。我正在使用Tabmanager。。但它只适用于同一个省道文件。我开始飘动。 我在选项卡管理器中出错。\u myTabbedPageKey.currentState.\u tabController .animateTo(1)强> 提前谢谢 主飞镖Flutter 如何从另一个dart文件按钮点击事件导航选项卡。我正在使用Tabmanager。。但它只适用于同一个省道锉。我开始颤抖,flutter,Flutter,我的问题是关于 如何从另一个dart文件按钮点击事件导航选项卡。我正在使用Tabmanager。。但它只适用于同一个省道文件。我开始飘动。 我在选项卡管理器中出错。\u myTabbedPageKey.currentState.\u tabController .animateTo(1) 提前谢谢 主飞镖 void main(){ runApp(MyApp()); } 类MyApp扩展了StatefulWidget{ constmyapp({Key}):超级(Key:Key); @凌驾 _MyA
void main(){
runApp(MyApp());
}
类MyApp扩展了StatefulWidget{
constmyapp({Key}):超级(Key:Key);
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
@凌驾
小部件构建(构建上下文){
返回材料PP(
主页:DefaultTabController(
长度:2,
孩子:脚手架(
appBar:appBar(
底部:选项卡栏(
选项卡:[
选项卡(图标:图标(图标方向车)),
选项卡(图标:图标(图标方向和交通)),
],
),
标题:文本(“选项卡演示”),
),
正文:选项卡视图(
儿童:[
新TabA(),
新TabB(),
],
),
),
),
);
}
}
类TabManager扩展StatefulWidget{
静态final_myTabbedPageKey=new GlobalKey();
@凌驾
_TabManagerState createState()=>\u TabManagerState();
}
类_TabManagerState扩展状态{
@凌驾
小部件构建(构建上下文){
返回新材料PP(
debugShowCheckedModeBanner:false,
标题:“颤振演示”,
主页:新MyApp(
键:TabManager.\u myTabbedPageKey,
),
);
}
}
这里tabA.dart是单独的省道文件。。
错误表现为
没有为类型“TabManager”定义getter“\u myTabbedPageKey”。
塔巴镖
类TabA扩展StatefulWidget{
@凌驾
_TabAState createState()=>u TabAState();
}
类_TabAState扩展状态{
@凌驾
小部件构建(构建上下文){
返回容器(
儿童:手势检测器(
onTap:(){
TabManager.\u myTabbedPageKey.currentState.\u tabController
.animateTo(1);
},
子项:文本('taba'),
);
}
}
尝试使用与此代码非常相似的代码
工作演示
进口“包装:颤振/材料.省道”
void main(){
runApp(MyApp());
}
类MyApp扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
}
}
类Home扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
}
}
类消息扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
}
}
类调用扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
}
}但我想在点击另一个dart文件中的文本时设置(移动)选项卡的动画。好的,我也尝试再次执行此代码,简单地创建一个主文件名文件,并将其导入主文件中,如导入“home.dart”;而且它只在顶部使用相同的代码,只需添加这一行import“package:tabflatter_app/home.dart”;为新页面导入添加home.dart文件“package:flatter/material.dart”;类Home扩展了无状态小部件{@override Widget build(BuildContext context){返回MaterialApp(debugShowCheckedModeBanner:false,Home:Scaffold(body:Center)(child:Text('Home',style:TextStyle(fontSize:21),))}而且没有其他变化
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key key}) : super(key: key);
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: DefaultTabController(
length: 2,
child: Scaffold(
appBar: AppBar(
bottom: TabBar(
tabs: [
Tab(icon: Icon(Icons.directions_car)),
Tab(icon: Icon(Icons.directions_transit)),
],
),
title: Text('Tabs Demo'),
),
body: TabBarView(
children: [
new TabA(),
new TabB(),
],
),
),
),
);
}
}
class TabManager extends StatefulWidget {
static final _myTabbedPageKey = new GlobalKey<_MyAppState>();
@override
_TabManagerState createState() => _TabManagerState();
}
class _TabManagerState extends State<TabManager> {
@override
Widget build(BuildContext context) {
return new MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Flutter Demo',
home: new MyApp(
key: TabManager._myTabbedPageKey,
),
);
}
}
class TabA extends StatefulWidget {
@override
_TabAState createState() => _TabAState();
}
class _TabAState extends State<TabA> {
@override
Widget build(BuildContext context) {
return Container(
child: GestureDetector(
onTap: () {
TabManager._myTabbedPageKey.currentState._tabController
.animateTo(1);
},
child: Text('taba')),
);
}
}
return MaterialApp(
home: DefaultTabController(
length: 3,
child: Scaffold(
appBar: AppBar(
bottom: TabBar(
tabs: [
Tab(text: 'Home'),
Tab(text: 'Messages',),
Tab(text: 'Call'),
],
),
title: Text('MY App'),
),
body: TabBarView(
children: [
new Home(),
new Messages(),
new Call()
],
),
),
),
);
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Center(
child:
Text('Home',
style: TextStyle(fontSize: 21),)
)
)
);
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Center(
child:
Text('Meassage',
style: TextStyle(fontSize: 21),)
)
)
);
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Center(
child:
Text('Call',
style: TextStyle(fontSize: 21),)
)
)
);