在Flutter中,可以使用AppBar组件来创建一个包含返回按钮的导航栏。以下是一个包含返回按钮的AppBar的代码示例:
import 'package:flutter/material.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'My App',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(
leading: IconButton(
icon: Icon(Icons.arrow_back),
onPressed: () {
Navigator.pop(context);
},
),
title: Text('My Page'),
),
body: Container(),
),
);
}
}
在这个示例中,我们使用leading属性来添加一个IconButton作为AppBar的返回按钮,并在按钮的onPressed回调中使用Navigator.pop方法来返回上一个页面。
如果你想在一个类中更新另一个类中的列表数据,可以使用回调函数的方式来实现。以下是一个简单的示例:
import 'package:flutter/material.dart';
class ListScreen extends StatefulWidget {
@override
_ListScreenState createState() => _ListScreenState();
}
class _ListScreenState extends State {
List items = ['Item 1', 'Item 2', 'Item 3'];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('List'),
),
body: ListView.builder(
itemCount: items.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(items[index]),
);
},
),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.add),
onPressed: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => AddItemScreen(updateList: updateList)),
);
},
),
);
}
void updateList(String newItem) {
setState(() {
items.add(newItem);
});
}
}
class AddItemScreen extends StatelessWidget {
final Function(String) updateList;
AddItemScreen({required this.updateList});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Add Item'),
),
body: Center(
child: ElevatedButton(
child: Text('Add Item'),
onPressed: () {
updateList('New Item');
Navigator.pop(context);
},
),
),
);
}
}
在这个示例中,ListScreen类包含一个名为items的列表,并在ListView.builder中使用它来显示列表项。在ListScreen中,我们还定义了一个updateList方法,用于在其他类中更新列表。
AddItemScreen类是一个用于添加新列表项的屏幕。它接受一个updateList回调函数作为参数,并在按钮的onPressed回调中调用该函数来更新ListScreen中的列表。
上一篇:AppBar顶部有黑色条纹