Flutter 实现返回上一页清空编辑框文本
warning:
这篇文章距离上次修改已过187天,其中的内容可能已经有所变动。
在Flutter中,你可以使用Navigator来返回上一页,并且在上一页中清空编辑框的文本。以下是一个简单的例子:
import 'package:flutter/material.dart';
class MainScreen extends StatefulWidget {
@override
_MainScreenState createState() => _MainScreenState();
}
class _MainScreenState extends State<MainScreen> {
final TextEditingController _controller = TextEditingController();
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
TextField(
controller: _controller,
),
RaisedButton(
child: Text('Go to Details'),
onPressed: () {
Navigator.push(context, MaterialPageRoute(builder: (context) => DetailsScreen()));
},
),
],
),
),
);
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
}
class DetailsScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Details Screen'),
leading: IconButton(
icon: Icon(Icons.arrow_back),
onPressed: () {
// 清空文本并返回上一页
Navigator.of(context).pop();
// 你也可以在这里通过其他方式清空文本,例如通过回调函数
},
),
),
body: Center(
child: Text('This is the Details Screen'),
),
);
}
}
void main() {
runApp(MaterialApp(home: MainScreen()));
}
在这个例子中,MainScreen
是包含TextField
的页面,当用户点击按钮跳转到DetailsScreen
时,TextField
的文本会被清空,因为我们在Navigator.push
调用中没做任何处理。在DetailsScreen
中,当用户点击返回箭头时,会通过Navigator.pop
返回到上一页,并且TextField
的文本会被清空。
评论已关闭