Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import 'package:flutter/material.dart';
- void main() => runApp(new TodoApp());
- class TodoApp extends StatelessWidget {
- @override
- Widget build(BuildContext context) {
- return new MaterialApp(title: 'Todo List', home: new TodoList());
- }
- }
- class TodoList extends StatefulWidget {
- @override
- createState() => new TodoListState();
- }
- class TodoListState extends State<TodoList> {
- List<String> _todoItems = [];
- void _addTodoItem(String task) {
- if (task.length > 0) {
- setState(() => _todoItems.add(task));
- }
- }
- Widget _buildTodoList() {
- return new ListView.builder(
- itemBuilder: (context, index) {
- if (index < _todoItems.length) {
- return _buildTodoItem(_todoItems[index]);
- }
- },
- );
- }
- Widget _buildTodoItem(String todoText) {
- return new ListTile(title: new Text(todoText));
- }
- Widget build(BuildContext context) {
- return new Scaffold(
- appBar: new AppBar(title: new Text('Todo List')),
- body: _buildTodoList(),
- floatingActionButton: new FloatingActionButton(
- onPressed: _pushAddTodoScreen,
- tooltip: 'Add task',
- child: new Icon(Icons.add)),
- );
- }
- void _pushAddTodoScreen() {
- Navigator.of(context).push(new MaterialPageRoute(builder: (context) {
- return new Scaffold(
- appBar: new AppBar(title: new Text('Add a new task')),
- body: new TextField(
- autofocus: true,
- onSubmitted: (val) {
- _addTodoItem(val);
- Navigator.pop(context); // Close the add todo screen
- },
- decoration: new InputDecoration(
- hintText: 'Enter something to do...',
- contentPadding: const EdgeInsets.all(16.0)),
- ));
- }));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement