This example demonstrates state management and using a ListView to display a list of items.
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'To-Do List',
theme: ThemeData(primarySwatch: Colors.blue),
home: ToDoList(),
);
}
}
class ToDoList extends StatefulWidget {
@override
_ToDoListState createState() => _ToDoListState();
}
class _ToDoListState extends State<ToDoList> {
final List<String> _tasks = [];
final TextEditingController _controller = TextEditingController();
void _addTask() {
if (_controller.text.isNotEmpty) {
setState(() {
_tasks.add(_controller.text);
_controller.clear();
});
}
}
void _removeTask(int index) {
setState(() {
_tasks.removeAt(index);
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('To-Do List'),
),
body: Column(
children: [
Expanded(
child: ListView.builder(
itemCount: _tasks.length,
itemBuilder: (context, index) {
return ListTile(
title: Text(_tasks[index]),
trailing: IconButton(
icon: Icon(Icons.delete),
onPressed: () => _removeTask(index),
),
);
},
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Row(
children: [
Expanded(
child: TextField(
controller: _controller,
decoration: InputDecoration(labelText: 'New Task'),
),
),
IconButton(
icon: Icon(Icons.add),
onPressed: _addTask,
),
],
),
),
],
),
);
}
}
Leave a Reply