在Flutter中,如果你想在用户输入命令后删除消息,可以使用TextEditingController
来控制文本输入框的内容,并在处理完命令后清空文本输入框。以下是一个示例,展示了如何实现这一功能。
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: CommandInputScreen(),
);
}
}
class CommandInputScreen extends StatefulWidget {
@override
_CommandInputScreenState createState() => _CommandInputScreenState();
}
class _CommandInputScreenState extends State<CommandInputScreen> {
final TextEditingController _controller = TextEditingController();
final List<String> _messages = [];
void _handleCommand() {
final String command = _controller.text.trim();
if (command.isNotEmpty) {
setState(() {
_messages.add(command);
_controller.clear(); // 清空输入框
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Command Input Example'),
),
body: Column(
children: [
Expanded(
child: ListView.builder(
itemCount: _messages.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(_messages[index]),
);
},
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
children: [
Expanded(
child: TextField(
controller: _controller,
decoration: InputDecoration(
labelText: 'Enter command',
),
onSubmitted: (value) => _handleCommand(),
),
),
IconButton(
icon: Icon(Icons.send),
onPressed: _handleCommand,
),
],
),
),
],
),
);
}
}
TextEditingController
来控制TextField
的内容。通过_controller.clear()
方法可以清空输入框的内容。ListView.builder
来显示所有输入的命令。TextField
来接受用户输入,并在用户按下回车键或点击发送按钮时调用_handleCommand
方法。当用户在输入框中输入命令并按下回车键或点击发送按钮时,命令会被添加到消息列表中,并且输入框会被清空。
领取专属 10元无门槛券
手把手带您无忧上云