设计一个flutter页面,有一个按钮和一个标题,点击按钮后,弹出一个输入框,输入完后,标题变为输入值,写出代码,支持空安全
时间: 2024-03-24 07:36:26 浏览: 166
好的,以下是一个简单的 Flutter 页面,包括一个按钮和一个标题,点击按钮后弹出一个输入框,输入内容后标题会变成输入的值:
```dart
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
String _title = 'Flutter页面';
void _showInputDialog() async {
String inputValue = await showDialog<String>(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('请输入标题'),
content: TextField(),
actions: [
TextButton(
child: Text('取消'),
onPressed: () => Navigator.of(context).pop(),
),
TextButton(
child: Text('确定'),
onPressed: () => Navigator.of(context).pop(),
),
],
);
},
);
if (inputValue != null && inputValue.isNotEmpty) {
setState(() {
_title = inputValue;
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(_title),
),
body: Center(
child: ElevatedButton(
child: Text('输入标题'),
onPressed: _showInputDialog,
),
),
);
}
}
```
在这个代码里,我们使用了 `StatefulWidget` 来创建一个有状态的页面,因为我们需要在按钮被点击后改变标题。`_title` 变量用来储存当前的标题值,并且在标题栏中显示。
`_showInputDialog` 方法用于创建一个弹出框,包含一个文本输入框和确定/取消按钮。当用户点击确定按钮后,我们将输入框中的值赋给 `inputValue` 变量,并且通过调用 `setState` 方法来刷新页面,这样标题就会被更新。如果用户点击取消按钮或者没有输入任何内容,我们将不会做任何操作。
在 `build` 方法中,我们创建了一个 `Scaffold`,包含一个标题栏和一个居中的按钮。当按钮被点击时,我们会调用 `_showInputDialog` 方法来显示输入框。
希望这个代码能够对你有帮助!
阅读全文