169 похожих чатов

Ребят, почему showDialog может ничего не показывать при нажатии?

11 ответов

10 просмотров

попробуй задать контейнеру размер и цвет

// Copyright 2019 The Flutter team. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/gallery_localizations.dart'; import 'package:gallery/demos/material/material_demo_types.dart'; // Pressing the PopupMenuButton on the right of this item shows // a simple menu with one disabled item. Typically the contents // of this "contextual menu" would reflect the app's state. class _ContextMenuDemo extends StatelessWidget { const _ContextMenuDemo({Key key, this.showInSnackBar}) : super(key: key); final void Function(String value) showInSnackBar; @override Widget build(BuildContext context) { return ListTile( title: Text(GalleryLocalizations.of(context) .demoMenuAnItemWithAContextMenuButton), trailing: PopupMenuButton<String>( padding: EdgeInsets.zero, onSelected: (value) => showInSnackBar( GalleryLocalizations.of(context).demoMenuSelected(value), ), itemBuilder: (context) => <PopupMenuItem<String>>[ PopupMenuItem<String>( value: GalleryLocalizations.of(context).demoMenuContextMenuItemOne, child: Text( GalleryLocalizations.of(context).demoMenuContextMenuItemOne, ), ), PopupMenuItem<String>( enabled: false, child: Text( GalleryLocalizations.of(context).demoMenuADisabledMenuItem, ), ), PopupMenuItem<String>( value: GalleryLocalizations.of(context).demoMenuContextMenuItemThree, child: Text( GalleryLocalizations.of(context).demoMenuContextMenuItemThree, ), ), ], ), ); } }

Vladimir-Onokhov Автор вопроса

Вы за-push-иваете (showDialog()) Dialog внутри onTap по окончанию которого произойдет pop, так как onTap происходит на элементе меню (showMenu()) и это меню должно за-pop-ится, убраться. Поэтому после onTap наверху стека роутов (_hystory) будет не меню, а диалог, который должен был показаться, но по этой причине не покажется. Flutter эту ситуацию, я бы сказал, обрабатывает не правильно, если смотреть по _RouteLifecycle -ам. Он тупо берет из стека последенее и пытается его за-pop-ить, но такова логика. Можно перед вызовом showDialog() подождать до следующего цикла await Future.delayed(Duration.zero), тогда наверху в стеке, в текущем фрейме (там где onTap: () async ...) , будет именно меню и оно уберется, а в следующем фрейме уже за-push-ится Dialog и покажется.

Dmitrii Cheremisov
Вы за-push-иваете (showDialog()) Dialog внутри onT...

Коллега, а вас не смущает что у buder возвращает SizedBox. Shrink ()?

ManBearPig
Коллега, а вас не смущает что у buder возвращает ...

Нет, не смущает, я просто ответил на вопрос.

Vladimir-Onokhov Автор вопроса

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ребят, кто сталкивался с тем, что Electron.js не разворачивает билд React.js-приложения? Голый body в чёрном цвете, как и должно быть, но остального - нет. Билд работает исп...
..
6
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Anyone knows how to build this widget in Flutter? I have all the assets for round stations and the road, but how can I make the my widget animate between these stations? And h...
Mohammad Zamani
9
короче я не выдержал постоянно определять структуры, чтобы возвращать массивы разных типов. Как обычно еще это делают?
Павλо 🇺🇦
7
Подскажите как мне лучше держать websocket сединение и переодически передавать в него данные? Сначала я сделал так: for _ in 1...1000 { try? await ws.send("test") try...
Mihail Verenich
2
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Карта сайта