Программирование : Dart & Flutter по-русски
Stanislav Ilin
Все норм, не за что
Stanislav Ilin
Сам не мог вкурить , когда столкнулся
Stanislav Ilin
Ещё кст на сайте Лебедева есть универсальный енкодер. Когда вообще непонятно что за кодировка - помогает.
Stanislav Ilin
[
{
"type": "link",
"text": "https://www.artlebedev.ru/decoder/"
}
]
Maks Andrienko
это же дизайнер который?)
Stanislav Ilin
Вроде его сайт )
Artur Ponomarenko
[
"Всем добрый день. У меня есть такой вопрос. Если создаю кнопку и передаю ей в onPressed выражение типа такого:\n\n",
{
"type": "code",
"text": "onPressed: _numberPlateIsEntered()\n ? () {\n // button actions\n }\n : null,"
},
"\n",
{
"type": "bold",
"text": "\n"
},
"То все работает корректно и кнопка дизейблится, если возвращается null. Но, если я тоже самое оборачиваю в функцию и делаю так:\n\n",
{
"type": "pre",
"text": "…\nonPressed: _nextButtonAction()\n…\nVoidCallback _nextButtonAction() {\n if (_numberPlateIsEntered()) {\n return () {\n // button action\n };\n } else {\n return null;\n }\n}",
"language": ""
},
"\n\nТо уже кнопка не дизеблится. Подскажите, пожалуйста, почему"
]
Maks Andrienko
по моему просто где то с условием перепутал
Daniil Kolyasnikov
А почему у тебя тут VoidCallback ?
Artur Ponomarenko
Я посмотрел конструктор RaisedButton
Maks Andrienko
кстати да просто поставь void
Maks Andrienko
Function поставь
Daniil Kolyasnikov
Нет он функцию возвращает
Kirill Aparin
[
{
"type": "pre",
"text": "onPressed: _nextButtonAction()\n…\n_nextButtonAction() {\n if (_numberPlateIsEntered()) {\n // button action\n } else {\n null;\n }\n}",
"language": ""
},
""
]
Kirill Aparin
Я думаю может даже else убрать
Artur Ponomarenko
Но мне ведь нужно функцию вернуть, а не выполнить ее здесь
Kirill Aparin
[
{
"type": "pre",
"text": "onPressed: _nextButtonAction()\n…\n_nextButtonAction() {\n if (_numberPlateIsEntered()) {\n return () {\n // button action\n };\n } else {\n return null;\n }\n}",
"language": ""
},
""
]
Artur Ponomarenko
[
"Не. Тот же результат. \nПопробовал \nи ",
{
"type": "pre",
"text": "Function _nextButtonAction()",
"language": ""
},
"\nи ",
{
"type": "pre",
"text": "_nextButtonAction()",
"language": ""
},
""
]
Daniil Kolyasnikov
Я могу ошибаться, но оставь _numberPlateIsEntered() ? callback : null,
Artur Ponomarenko
[
"Попробовал так\n",
{
"type": "pre",
"text": "VoidCallback _nextButtonAction() {\n return _numberPlateIsEntered()\n ? () {\n print(\"Button action\");\n }\n : null;\n}",
"language": ""
},
{
"type": "bold",
"text": "\n"
},
"Тоже самое. Ладно всем спасибо. Это не критично. Но не совсем понятно почему это так работает"
]
Artur Ponomarenko
[
"Решил сделать так:\n",
{
"type": "pre",
"text": "…\nonPressed: _numberPlateIsEntered() ? _nextButtonAction : null,\n…\nvoid _nextButtonAction() {\n print(‘button action’);\n}",
"language": ""
},
""
]
S
в "flutter doctor" показывает все ок, но при "flutter run " - ошибка FAILURE: Build failed with an exception.
Павел Середа
resource mipmap/ic_launcher бла бла not found
Павел Середа
а с флаттером порядок скорее всего
S
как эту ошибку испраить?
prz
закинь в гугл переводчик
Павел Середа
[
"я бы начал с гугления \"flutter mipmap/ic_launcher\", яндекс мне находит такую ссылочку: ",
{
"type": "link",
"text": "https://stackoverflow.com/questions/43928702/how-to-change-the-application-launcher-icon-on-flutter"
},
""
]
Никита Моисеев
Погугли как в андроиде добавлять правильно иконку приложения: через New - Asset Image
Andrey Novatovski
как поставить кавычки в кавычках?
Andrey Novatovski
а еще почему hot restart зависает просто?
Andrey Novatovski
при дебаге
Денис
Народ кто шарит в dart -serverside? Нужно сделать микро бекенд в котором получаю http запрос -> делаю внешний http запрос -> возвращаю ответ из вне. Для обхода CORS политики. Стоит ли юзать какой-то фреймворк или можно справиться нативный дартом?
Michael Bazilique
[
"Привет, всем хорошего раб. недели!\n",
{
"type": "pre",
"text": " Stream > get _inboxVms {\n return provider.inboxOpinions.flatMap(\n (value) => Stream.fromFuture(_map(provider.sortCategory.value, value)));\n }\n\n Stream> get _pendingVms =>\n provider.pendingOpinions.flatMap((value) =>\n Stream.fromFuture(_map(provider.sortCategory.value, value)));\n\n Stream> get opinions {\n return CombineLatestStream.combine3(\n provider.sortCategory, _inboxVms, _pendingVms, _filterVisible);\n }",
"language": ""
},
"\nпочему когда флэтМеп inbox/pending получает новое значение в поток, скомбайненый opinions не обновляется?"
]
prz
господа,а есть в visual code для flutter какой-нибудь визуальный плагин,что бы отображал какой row/cont/clumn в чем и где находится? каркас визуально видеть
Roman Vasiliev
Можно с помощью Timer, но не забывай, что в фоне приложение может выгрузиться
admin
Мужики, подскажите. Необходимо растрировать (to rasterize) картинку svg. Как это сделать?
Some Name
только размеры скажи
Павел Середа
выбор dart для сервер сайда - плохая затея. CORS это заголовки, штатного фреймворка для http должно быть достаточно.
Some Name
а вообще, в любом векторном редакторе, только выставляй не более 96ppi, а то рендер может быть затруднительный
Some Name
последующий рендер в программе, где ты её юзаешь**
Денис
у меня нет другого стака кроме дарта в команде, а нанимать кодера только для микроссервера очень не экономично)
Павел Середа
ну если нужна такая мелочь, может быть самому посмотреть в сторону go?
Денис
я на дарте напишу за день два, на го буду только разбираться неделю)
Денис
я уже нашел ответ на вопрос и уже даже делаю первый запрос из 12)
Some Name
а если програмно, то недавно выкатили сборку OpenCV для flutter'a, можешь в его сторону посмотреть, производительность огонь
Денис
а в чем проблема dart вместо такого сервера?
Павел Середа
в том что это не общепринятое server-side средство, т.е. отсюда проблемы в отсутствии каких-либо нужных библиоетек, которые могут быть в других средствах программирования. Ну и часто пишут умные люди что не стоит стремиться использовать один ЯП для всего, используйте средства программирования по назначению. Ну и контрольный: какие серъёзные проекты крутят бекенд на дарте?
Денис
это микросервер для одного проекта с которым будет общаться онли ангулар и флаттер
Ivan
+++ нода например хорошо для такого подходит, но только если от жс глаза не вытекают
Денис
я понимаю для постройки действительно сервера, но это микро прокси)
Павел Середа
зачем вообще нужны микро-прокси?
Дмитрий Щербаков
Фаербейс
Дмитрий Щербаков
А так го или Раст топчик для бека
Денис
есть наш клиент и есть коммерческий крупный api который не хочет ставить CORS заголовки. Надо в течении 5 дней сделать так чтобы сайт общался с чужой api. Но корс все блокирует
Павел Середа
rust по моему скромному мнению это мёртворожденное средство программирования
Eldar
Ребята как передавать блок в top таббар виджеты
admin
на размер экрана (например Picsel 3)
Артем Терещук
Не понимаю как вместить и List и Map ??
The element type 'List' can't be assigned to the map value type 'String'.
Roman Vasiliev
сделай динамик вторым дженериком
Mitai
"к примеру 'так' можно"
Mitai
это еще почему? вполне спокойно юзают на бекенде
Э п
Я правильно понял что в стримы можно только добавлять новые данные, но удалять нельзя?
Some Name
на размер экрана (например Picsel 3)
admin
В фоновом изображении (background image)
Some Name
Думал, как сплеш скрин
Roman Vasiliev
их удалять неоткуда
Э п
Тогда я не понял стримы..
Roman Vasiliev
стрим это шина, а не хранилище
admin
Извини. Мне строка нужна, а не image-(
Andreu
а чего ты этим добиваешься?
admin
SvgPicture вставить не могу.
Andreu
а код можно? тут ошибкой половина закрывается
Some Name
Извини. Мне строка нужна, а не image-(
Roman Vasiliev
он файл прочитать мб хочет?
Some Name
Тебе же растрировать нужно было?)
Some Name
Как я тут вижу, viewbox это параметры холста, а дальше ссылка на свг
admin
извини. SvgPicture не могу вставить-(
admin
Спасибо за подсказку. Кажется доперло-(
Some Name
Вообще, лучше svg в assets засунь
Some Name
И будет тебе путь к свг
Pavel Kozlovskiy
Добрый день, скажите а можно сделать анимацию draggable элемента при drop-е со стандартным DragTarget?
Yura Petrov
Ребята всем привет, подскажите пожалуйста. Использую Navigator, есть routes с страницами. Нужно использовать BottomNavigationBar. Как сделать так, чтобы его сделать общим на все окна?.
Yura Petrov
Можно почитать где нибудь?
Yura Petrov
С помощью Navigator это никак не сделать?
Yura Petrov
Просто мне бы хотелось складывать страницы в стек
Yura Petrov
Ок, спасибо, попробую
Sergey Riabinin
Ребят, подскажите, пожалуйста, как картинку добавить.
Sergey Riabinin
Когда добавляю assetst в pubspec.yaml всё рушится почему-то.
Sergey Riabinin
[
"Error detected in pubspec.yaml:\nError on line 54, column 4: Expected a key while parsing a block mapping.\n ",
{
"type": "code",
"text": "?"
},
"\n54 ¦ assets:\n ¦ ^\n ",
{
"type": "code",
"text": "?"
},
""
]
Sergey Riabinin
Вот такая ошибка вылезает.
Oleg
может отступы неправильно выставил?
Sergey Riabinin
assets: - images/apple1.jpg - images/apple3.png
Sergey Riabinin
Очень может быть.
Sergey Riabinin
Ничего не знаю про отступы ??
Sergey Riabinin
Раскоментировал assets и поставил свои варианты.
Sergiy Nevedomyy
Когда кинул в таргет, запусти контроллер анимации...или в чем суть?
Константин Буланов
Мне кажется проблема в отсnупах. Это же yaml.
Pavel Kozlovskiy
элемент который тянешь, чтобы после отпукания плавно "долетал" до нужного места
Sergey Riabinin
То есть отступ должен быть на 1 пробел правее, чем flutter? А сами папки еще на 1 правее?
Sergiy Nevedomyy
Так тебе нужна обычная анимация тогда..и контроллером доводишь, когда отпускаешь...а драгбл когда попал в таргет, тогда действие...как его еще довести..
Константин Буланов
Правила yaml блоки формируются из 2 (двух) пробелов. Проверьте что везде в блоках по два пробела.
Sergey Riabinin
Спасибо. Теперь получилось.
Sergey Riabinin
Концепция пробелов как-то очень непривычна пока.
Andreu
Рекомендую в ознакомительных целях питон)
dmitry isachenkov
Пейтон же
Ivan
[
{
"type": "mention",
"text": "@bunopus"
}
]
dmitry isachenkov
Рофлики на тему как правильно называть язык программирования
dmitry isachenkov
Видимо шутка самосмейка
Vladimir Elfimov
Не, я улыбнулся
Илья Цымбалюк
Ребят ,всем привет. Подскажите такой момент. Нужно при возврате на родителя его перерендеривать, можно какое-то событие на данную кнопку навесить в appbar или как-то по другому это реализовать?
Roman Vasiliev
Если кратко, то кладешь в пейджвью странички обвернутые в навигаторы (в каждый передаешь уникальный ключ), обворачиваешь пейджвью в WillPopScope и в нем обрабатываешь к какому из навигаторов относится pop
Илья Цымбалюк
спасибо, помог
Илья Цымбалюк
да всё сработало. спасибо
Maks Andrienko
подскажите пожалуйста я добавил onesignal, но он ска падает
Maks Andrienko
Вроде добавить OneSignal не такая и проблема, но почему то крашется постоянно….
Maks Andrienko
Интересно, а вообще нормально дружат Fireabse push и oneSignal вместе в проекте?)
Maks Andrienko
FCM нужен обязательно ?
Maks Andrienko
ну у меня есть пуши от firebase тут хотят еще и onesignal делал все по доке но при запуске приложение крашется…
Andrew Vasilevskii
Всем привет, встречался с проблемой на андройде, что notification нельзя expand (то есть если длинный текст на некоторых устройствах я не могу увидеть его полностью) можнт кто знает как это лечить? Firebase
Marina
Ребят можно ли как-то переключить уматериал апы тему? Вот у меня есть допустим theme и darkTheme и какой-то тогл - юзер его нажимает и мне надо поменять тему- как это сделать?
4??uzhoy .
[
{
"type": "link",
"text": "https://t.me/FlutterDevRu/440"
}
]
Kostya Tsymbaliuk
[
{
"type": "mention",
"text": "@NoUruru"
},
" bloc и подпишись на цвета во всех виджетах , так можешь контролить полностью все поведение и цвет"
]
Marina
а при переключении мода темы - будет пересоздаваться весь material app?
Marina
апа закроется и откроется?
Marina
[
"а для того чтобы переключить мне нужно подключить чето такое ",
{
"type": "link",
"text": "https://pub.dev/packages/dynamic_theme"
},
" ?"
]
Marina
ну есть проперти - тема, темная тема и ThemeMode
Maxim Gora
Там ещё есть darkTheme и themeMode :)
Marina
ппц мужики вы тут флаттером занимаетесь или чем
Angry TaigaFox
Доки почитай
Roman Vasiliev
Лично я ноготочками?? записываемся
L
С темами такая дичь у флаттера, что мне пришлось самому делать свой велосипед
Marina
так я пытаюсь выяснить как это работает ((
Angry TaigaFox
Оберни MaterialApp в Statefull и меняй тему как тебе нужно
Marina
так) я сетнула темную тему и обычную - theme и darkTheme. теперь если в настройках телефона указана темная тема флаттер атоматом применит darkTheme. но бзер зашел в апу и поставил светлую вручную - тоглом. я хочу сказать системе что тема поменялась чтобы она применила theme
Marina
т е у меня не одна тема которую я подменяю
Angry TaigaFox
Из приложения изменить тему системы не получится
Marina
нет переключить на уровне апы я могу?
Marina
я об этом и спросила
Angry TaigaFox
Храни ключи(dark, light, e.t.c) для тем в SharedPreferences, чтобы запомнить последнюю тему приложение и будет тебе счастье.
Roman Vasiliev
Изобретаем dynamic_theme??
Angry TaigaFox
inherited widget по харду
4??uzhoy .
[
{
"type": "pre",
"text": "inherited-унаследованный\ninherend-врожденный",
"language": ""
},
""
]
Roman Vasiliev
В здесь конец
Roman Vasiliev
In here end
4??uzhoy .
[
{
"type": "code",
"text": ">что-то гугль по запросу \"businassman\" всякую чушь выдает...\n<а что должен?\n>про бизнесменов что-нибудь\n<так ты и ищи про бизнесменов, а не про человека-с-автобусом-в-заднице(\"bus-in-ass-man\")!\n"
},
"Хроники баша, который орг, 08год"
]
Angry TaigaFox
Слушай, мужик, не умничай это не делает тебя важным и.т.д
Angry TaigaFox
Ясна токсик в треде
A
[
{
"type": "link",
"text": "https://youtu.be/vDqGe7ugfIA"
}
]
NewBalanceM5
ага, вчера вышел)
NewBalanceM5
[
{
"type": "link",
"text": "https://t.me/FlutterDevRu/440"
}
]
NewBalanceM5
а есть линк?
Muso Verda
[
"гайз, что такое - ",
{
"type": "code",
"text": "SafeArea()"
},
"\n?"
]
vasilich
Учёт нотчей и вских там выступов
vasilich
[
{
"type": "link",
"text": "https://api.flutter.dev/flutter/widgets/SafeArea-class.html"
}
]
Muso Verda
ага - уже посмотрел видосик )
Muso Verda
[
"гайз, почему иногда пишут так - ",
{
"type": "code",
"text": "padding: EdgeInsets.symmetric(horizontal: 24.0)"
},
";\nиногда - ",
{
"type": "code",
"text": "padding: const EdgeInsets.symmetric(horizontal: 24.0)"
},
"\nв чем разница?"
]
Roman Vasiliev
[
"const объекты это константы времени компиляции приложения - можно обмазаться и начать теребонькать на перфоманс, так как все посчитано еще до запуска\n\nесли вызывается const конструктор, а const не указать, то ",
{
"type": "italic",
"text": "вроде как"
},
" компилятор умный и додумается сам его использовать, если все значения переданные туда будут также константными"
]
Roman Vasiliev
От перерисовки виджетов, если они дергают наследников inherited widget, не спасает но если перерисовка до цикличности не доходит, это обычно никаких проблем не вызывает, так что не страшно
Andrew Ka
[
{
"type": "link",
"text": "https://youtu.be/qjT6cuab_zs"
}
]
Andrew Ka
[
{
"type": "link",
"text": "https://youtu.be/UdIrRb-P1e0"
}
]
Mustafin Marat
Че ты делаешь)?)
Mustafin Marat
400+ видосов годно??
Ivan Pavlov
С таких подходом проблем с производительностью не возникнет?)
Roman Vasiliev
А где может возникнуть?
Ivan Pavlov
Пишут, что ключи "дорогие" в использовании.
Roman Vasiliev
Поиск стейта скорее, но другого (нормального) выхода для поиска стейта и нет
Alexander PhatoM
мне нужно обработать удержание кнопки, но onLongPressed отрабатывает с задержкой. Можно ли как то обработать моментально?
Alexander PhatoM
ну вот мне нужно жест от начала касания обработать
Alexander PhatoM
это нажал и отпустил
Alexander PhatoM
а мне нужно нажал, и удерживаешь
Alexander PhatoM
чтобы был callback на отжатие
Roman Vasiliev
А как можно понять, что это именно долгий тап, до того как он стал долгим?
Roman Vasiliev
Для начала касания можно onTapDown заюзать, как сказали
Alexander PhatoM
А вот мне нужно обработать только начало касания и конец, буду юзать ontapup и ontapdown
Dmitry
а кто-нибудь через codemagic собирал?
Dmitry
не может собрать, ругается на половину кода то того не существует, то этого
|