Функция showDialog во флаттере ничего не делаетAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Функция showDialog во флаттере ничего не делает

Сообщение Anonymous »

Я создаю простое приложение «Список дел» во Flutter. Когда я нажимаю кнопку «floatingActionButton», должно отображаться всплывающее окно, в котором пользователь может ввести новую задачу. Но при нажатии кнопки ничего не отображается. Тестирование на реальном телефоне Android. Вот код:
import 'package:flutter/material.dart';
import 'task.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
const MyApp({super.key});

@override
State createState() => _MyAppState();
}

class _MyAppState extends State {

List tasks = [];

@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(

appBar: AppBar(
backgroundColor: Colors.yellow[700],
title: Text("To Do List"),
centerTitle: true,
),

body: Container(margin: EdgeInsets.all(20), child:
Column(children:
tasks.map(
(name) => Task(name: name, delete: () => setState(()=>tasks.remove(name)))
).toList() as List
)
),

floatingActionButton: IconButton(icon: Icon(Icons.add), onPressed: displayPrompt),

)
);
}

Future displayPrompt() async {
await showDialog(
context: context,
builder: (BuildContext context) => TextField(
onSubmitted: (String input) => setState(()=>tasks.add(input)),
decoration: InputDecoration(hint: Text("Please enter a task")),
autocorrect: true,
autofocus: true,
)
);
}

}

Вот созданный мною собственный виджет:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

class Task extends StatelessWidget {

final String name;
final VoidCallback delete;

const Task({required this.name, required this.delete, super.key});

@override
Widget build(BuildContext context) {
return Card(
child: Row(children: [
Text(name),
IconButton(icon: Icon(Icons.delete), onPressed: delete,)
]),
);
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... g-anything
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»