Untitled
unknown
plain_text
4 years ago
2.4 kB
30
Indexable
import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: 'Ignite Todo', theme: ThemeData( // This is the theme of your application. // // Try running your application with "flutter run". You'll see the // application has a blue toolbar. Then, without quitting the app, try // changing the primarySwatch below to Colors.green and then invoke // "hot reload" (press "r" in the console where you ran "flutter run", // or simply save your changes to "hot reload" in a Flutter IDE). // Notice that the counter didn't reset back to zero; the application // is not restarted. primarySwatch: Colors.purple, ), home: MyTodoPage(), ); } } class MyTodoPage extends StatefulWidget { @override State<StatefulWidget> createState() => _MyTodoPageState(); } class _MyTodoPageState extends State<MyTodoPage> { final items = [for (var i = 0; i < 100; i++) 'item $i']; final _inputTextFieldController = TextEditingController(); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: const Text("todo"), ), body: ListView( children: [ ListTile( title: TextField( decoration: const InputDecoration(hintText: 'Add new item...'), controller: _inputTextFieldController, ), trailing: IconButton( icon: const Icon(Icons.add), onPressed: () { final text = _inputTextFieldController.text; if (text.isEmpty) return; setState(() { items.insert(0, text); }); }, ), ), for (var i = 0; i < items.length; i++) ListTile( title: Text(items[i]), trailing: IconButton( icon: const Icon(Icons.remove), onPressed: () { setState(() { items.removeAt(i); }); }, ), ), ], ), ); } }
Editor is loading...