如何 return 到上一页
how to return to previous page
在应用栏上,我想使用图标 return 到上一页。但它一直说参数类型 'context' 不能分配给参数类型 'BuildContext'.
AppBar app_bar_parking ({String title = ''}) {
return AppBar(
backgroundColor: Colors.white,
centerTitle: true,
title: Text('Parking & Pay'),
elevation: 0,
titleTextStyle: TextStyle(color: Colors.black, fontWeight: FontWeight.bold, fontSize: 20),
leading: GestureDetector(
child: IconButton(
icon: Icon(Icons.arrow_back_ios_new_outlined,
size: 20,
color: Colors.lightBlue,),
onPressed: () {
Navigator.pop(context);
}
),
)
);
}
在函数中传递context
。
AppBar app_bar_parking ({String title = '',BuildContext context}) {
return AppBar(
backgroundColor: Colors.white,
centerTitle: true,
title: Text('Parking & Pay'),
elevation: 0,
titleTextStyle: TextStyle(color: Colors.black, fontWeight: FontWeight.bold, fontSize: 20),
leading: GestureDetector(
child: IconButton(
icon: Icon(Icons.arrow_back_ios_new_outlined,
size: 20,
color: Colors.lightBlue,),
onPressed: () {
Navigator.pop(context);
}
),
)
);
}
现在在build()
里面使用
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: app_bar_parking('',context),
// rest of the code
);
}
我认为你的库导入有一些冲突,一些常见的冲突库是:
import 'package:path/path.dart'
import 'dart:js';
你可以改成
import 'package:path/path.dart' as Path
因为在您的 class 中您没有 context
声明。
将BuildContext context
添加到您需要的参数中。
AppBar app_bar_parking(BuildContext context, {String title = ''}) {
return AppBar(
backgroundColor: Colors.white,
centerTitle: true,
title: Text('Parking & Pay'),
elevation: 0,
titleTextStyle:
TextStyle(color: Colors.black, fontWeight: FontWeight.bold, fontSize: 20),
leading: GestureDetector(
child: IconButton(
icon: Icon(
Icons.arrow_back_ios_new_outlined,
size: 20,
color: Colors.lightBlue,
),
onPressed: () {
Navigator.pop(context);
}),
));
}
并且当您使用 app_bar_parking
时记得将上下文添加为:
app_bar_parking(context, "MyTitle");
在您的函数参数中添加 BuildContext context
。基本上,你必须使用相同的上下文。
app_bar_parking ({String title = '',BuildContext context}) {}
在应用栏上,我想使用图标 return 到上一页。但它一直说参数类型 'context' 不能分配给参数类型 'BuildContext'.
AppBar app_bar_parking ({String title = ''}) {
return AppBar(
backgroundColor: Colors.white,
centerTitle: true,
title: Text('Parking & Pay'),
elevation: 0,
titleTextStyle: TextStyle(color: Colors.black, fontWeight: FontWeight.bold, fontSize: 20),
leading: GestureDetector(
child: IconButton(
icon: Icon(Icons.arrow_back_ios_new_outlined,
size: 20,
color: Colors.lightBlue,),
onPressed: () {
Navigator.pop(context);
}
),
)
);
}
在函数中传递context
。
AppBar app_bar_parking ({String title = '',BuildContext context}) {
return AppBar(
backgroundColor: Colors.white,
centerTitle: true,
title: Text('Parking & Pay'),
elevation: 0,
titleTextStyle: TextStyle(color: Colors.black, fontWeight: FontWeight.bold, fontSize: 20),
leading: GestureDetector(
child: IconButton(
icon: Icon(Icons.arrow_back_ios_new_outlined,
size: 20,
color: Colors.lightBlue,),
onPressed: () {
Navigator.pop(context);
}
),
)
);
}
现在在build()
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: app_bar_parking('',context),
// rest of the code
);
}
我认为你的库导入有一些冲突,一些常见的冲突库是:
import 'package:path/path.dart'
import 'dart:js';
你可以改成
import 'package:path/path.dart' as Path
因为在您的 class 中您没有 context
声明。
将BuildContext context
添加到您需要的参数中。
AppBar app_bar_parking(BuildContext context, {String title = ''}) {
return AppBar(
backgroundColor: Colors.white,
centerTitle: true,
title: Text('Parking & Pay'),
elevation: 0,
titleTextStyle:
TextStyle(color: Colors.black, fontWeight: FontWeight.bold, fontSize: 20),
leading: GestureDetector(
child: IconButton(
icon: Icon(
Icons.arrow_back_ios_new_outlined,
size: 20,
color: Colors.lightBlue,
),
onPressed: () {
Navigator.pop(context);
}),
));
}
并且当您使用 app_bar_parking
时记得将上下文添加为:
app_bar_parking(context, "MyTitle");
在您的函数参数中添加 BuildContext context
。基本上,你必须使用相同的上下文。
app_bar_parking ({String title = '',BuildContext context}) {}