Программирование : Dart & Flutter по-русски
....
Как позвать диалог ридера.
....
типо OpenFileDialog1 на шарпе.
Anton Anokhin
[
"Привет! Всем, кто был на DartUP 2020 огромное спасибо! Без вас конференция бы не состоялась. Пожалуйста, поделитесь мнением об увиденном и услышанном, это очень важно для организаторов. ",
{
"type": "link",
"text": "https://ru.surveymonkey.com/r/DartUP2020ru"
},
""
]
?????????? | (• ?•)| (????)
[
{
"type": "link",
"text": "https://pub.dev/packages/file_picker"
}
]
?????????? | (• ?•)| (????)
Только на иос и андроид тестил
?????????? | (• ?•)| (????)
Не тестил , но в Readme написано, что поддерживает dart desktop
admin
какой кур харошо для изучения языка dart посоветуйте
Oleg Elifantiev
Не подскажете виджет для изготовления контекстного меню как в ВК или Телеге для текста?
Ostap Koziaryk
[
{
"type": "link",
"text": "https://dart.dev/guides/language/language-tour"
}
]
Ivan
[
{
"type": "link",
"text": "https://api.flutter.dev/flutter/cupertino/CupertinoContextMenu-class.html"
}
]
Oleg Elifantiev
С дочерним компонентом оно что-то непотребное творит при открытии меню. Надо видимо превьюшку самому рисовать через билдер
Sirojiddin
как читать данные через USB-сканер, снимая клавиатуру Android
VA
У меня такая проблема, есть виджет, в котором я формирую динамический список TextField. Значения TextField изначально пустые. После того, как я пишу а них слова, я пытаюсь прочитать значения из списка TextField, но все значения приходят пустыми. Как изменить уже существующий список TextField, при изменении значиний самих TextField? Никак не могу понять. Я понимаю, что когда я пишу слова, значения текста меняются, но в имеющимся списке они остаются такими, какими я добавил из изначально. Может колбек какой-то можно сделать? Я во flutter новичек
Sergey Barbirosha
Используй контролёр
Sergey Barbirosha
Или форму
Artem
привет!) а чем рекомендуется собирать ошибки во flutter'e для веб и ios/android отличаются решения между платформами?
VA
Ну я так и делаю, но значение пустые приходят
Sergey Barbirosha
firebase
Sergey Barbirosha
Только в веб не знаю как он
Artem
пишут что должно работать
VA
Вот я добавляю класс CustomRow, который я представляет из себя TextField
Пашка
во первых контроллер инициализируют в инитСтейт а так же его диспозят
Пашка
так вы его инициализуете не в стейте
Пашка
конечно у вас ни чо работать не будет
Пашка
для начала разберитесь как работает statelles and statefull
VA
Почитал, и всё получилось. Спасибо ещё раз
Alexey Devyatov
Подскажите, пожалуйста, какие существуют best practices для работы с БД во Flutter? Существуют ли мейнстримные библиотеки типа Room?
Миша
И насчет БД РЕАЛЬНО ЛИ подключить уже созданную SQLite db к Flutter?
Миша
а то через assets пытался, не вышло:(
Mikl Night
[
"всем салют! что-то я не пойму никак... ",
{
"type": "code",
"text": "StreamBuilder"
},
" сам же занимается всякими ",
{
"type": "code",
"text": "dispose"
},
"... или нет?\nУ меня при перерисовке виджета..(скролл туда-обратно) ",
{
"type": "code",
"text": "Bad state: Stream has already been listened to."
},
"\n\nКак так? стрим обьявлен в BloCке, его дёргает виджет, через ",
{
"type": "code",
"text": "StreamBuilder"
},
""
]
Vyacheslav
Я недавно встречал на стаке обсуждения на эту тему. Там советуют при создании стрима использовать BehaviorSubject из библиотеки RxDart взамен обычного StreamController
Mitai
[
{
"type": "link",
"text": "https://flutter.dev/docs/cookbook/persistence/sqlite"
}
]
Mikl Night
И правда, rxdart решил вопрос, спасибо)
Vyacheslav
Не за что! Вот у меня тоже вопрос, не по дарту, но вокруг него) У меня веб-приложение, деплой настроен из репозитория, деплоит всегда последний коммит. Возникла необходимость деплоя старого коммита, чтобы найти коммит в котором появился баг. Где можно быстро деплоить веб-приложение? Пробовал файрбейс, но там создаются файлы для апп и они теряются при каждом чекауте на новый коммит
Vyacheslav
Есть еще деплой на codemagic, но я не нашел там способа указывать нужный коммит для его сборки
Nightwelf
Xcode не виноват, провайдер требует флаттер новее. Обнови флаттер
Serge Shkurko
перезапусти vscode
Alexey
Windows. Уже перезапускал
Serge Shkurko
[
{
"type": "link",
"text": "https://stackoverflow.com/a/64817846/6858892"
}
]
Serge Shkurko
[
{
"type": "link",
"text": "https://code.visualstudio.com/updates/v1_51#_resizable-suggestions"
}
]
admin
мне нужна flutter ментор
Serge Shkurko
в чем именно? полный цикл обучения или частичная помощь в неочевидных ситуациях
admin
частичная помощь и немного обучение flutter ui не нужна толка логика бэкенд
Jake
Всем привет, проблемы возникли при настройки. Взгляните глазком. Плагин flutter установлен, андроид студио версия 4.1.1. Какая то проблема с android-studio-dir, Не пойму проблему, подскажите куда копать?
Evgeny Cherkasov
Пытаюсь запустить приложение на иос симуляторе. Выдает такую ошибку:
Evgeny Cherkasov
Устанавливать пробовал Тоже ошибки выдает Нагуглить не получилось пока Как это можно исправить?
Nightwelf
тупой вопрос а перезагружался?
Evgeny Cherkasov
нет, а надо?
Nightwelf
sudo gem install cocoapods
Evgeny Cherkasov
я с маком второй день только
Evgeny Cherkasov
ок попробую
Nightwelf
да я сам не особо в нем силен) но все же
Evgeny Cherkasov
не помогло
Madi
Почему VS Code выделяет цветом мой виджет IconButton?
??
потому что поиск так работает
NewBalanceM5
ты случаем ничего не ищешь, icon например?
Madi
нет, я не использую поиск, может случайно включил
Madi
спасибо за ответы, разобрался, привык что в android studio желтым выделяются ошибки
Vadim Lukichev
[
"Вот здесь фреймворк определяет \"наличие\" cocoapods\n",
{
"type": "link",
"text": "https://github.com/flutter/flutter/blob/37f4f1f281c015909cfafc6bc2168c49b5784b29/packages/flutter_tools/lib/src/macos/cocoapods.dart#L120"
},
"\nПросто запускает команду в консоли 'which pod' которая показывает путь до установленного cocoapods"
]
Evgeny Cherkasov
Ну вот он не устанавливается почему то
Vadim Lukichev
which pod что показывает?
Evgeny Cherkasov
pod not found
Vadim Lukichev
Хм, не видел такой ошибки. А через brew?
Evgeny Cherkasov
[
"что это, где смотреть?\nвот такое нагуглил ",
{
"type": "link",
"text": "https://github.com/CocoaPods/CocoaPods/issues/8955"
},
""
]
Vadim Lukichev
[
"Brew хорошая штука\n",
{
"type": "link",
"text": "https://brew.sh/"
},
""
]
Vadim Lukichev
[
{
"type": "link",
"text": "https://brewinstall.org/install-cocoapods-on-mac-with-brew/"
}
]
Владимир Калашников
Avd manager кидает ошибку "Unable to locate adb". Студия мой телефон видет, но эмулятор - нет. Это может быть из-за того, что Android SDK на диске D находится?
Roman Vasiliev
У меня на D, полет нормальный
Владимир Калашников
У меня и телефон не видело, пока я не добавил platform tools в path
Владимир Калашников
А с эмулятором проблема осталась
4nk1r
жалуется, что здесь где-то передаю null тексту. в текст идут только 2 параметра - третий и последний. что может быть не так? при необходимости могу показать остальной код и лог. заранее спасибо
4nk1r
в дебаге не нулл ни один, к тому же я пробовал его менять просто на строку...
Amigo 177
Как переводится offset???
Миша
вся проблема в том, что sqflite умеет только свою бд создавать на устройстве
Миша
а я пытаюсь законектить так
Миша
чтобы у всех изначально эта бд была
Ivan Nazarov
Всем привет)
Ivan Nazarov
Есть кто пользовался mysql1
Ivan Nazarov
Если пользовались то не могли бы вы рассказать какие косяки в нем есть которые никак не исправить? Заранее спасибо)
Andrey Unger
[
{
"type": "link",
"text": "https://github.com/adamlofts/mysql1_dart/issues"
},
" - 20 открытых ишью)"
]
Andrey Unger
вам этого мало?
Пашка
подскажите наименование пакета который предлагает сам оценить приложение в сторе
Пашка
по истечению какого то времени
Сергей Переходов
не будь мудаком, нашел напиши всем остальным название
Dmitry Zakharov
кто что думает про navigator 2.0? я тут думаю “декларатив” сменил “императив” но на деле код стал сложнее и в 20 раз увеличился… я не знаю чем думают ребята из флаттер
Dmitry Zakharov
может я конечно что-то не понимаю еще
Andrey
много кто так думает)
Пашка
гляньте на auto_route
Пашка
почти такой же функционал
Пашка
вообще классный пакет
Dmitry Zakharov
да кажется я слышал о нем
Dmitry Zakharov
кароче у меня случился разрыв пукана с этого 2.0. это реально может помочь тока флаттер вебу мб и все, но то что стало сложнее и хуже это сто пудов
Пашка
собсна в чем проблема?
Andrey
вот сделали бы кодогенерацию хотя бы секунд за 5, то нормально было бы, а так это только всё усложняет
Пашка
так это от вашего пк зависит
Andrey
не только, ещё от размера проекта
Andrey
[
"для навигации по мне так ",
{
"type": "code",
"text": "get"
},
" гораздо лучше"
]
Dmitry Zakharov
да им надо вообще сделать JIT для разработки а для прода AOT
Dmitry Zakharov
тогда бы и гемора не было
Пашка
и вообще вы пользуетесь getX???
Пашка
не будем это поднимать
Andrey
я его и для стейт менеджмента использую, гораздо удобнее bloc
Andrey
просто не все умеют его готовить)
Andrey
я вот всё собирался написать статейку как его можно использовать, но так руки и не доходят
Andrey
хренова туча boilerplat'а просто
Andrey
просто с гетом мне не надо каждый раз делать какие-то классы для того, чтобы отображать состояние загрузки/ошибки/успеха
Andrey
я не знаю, мб, там сейчас что-то поменялось, но всё же
Артём Ефименко
и как вы с гетх ошибки/загрузку отображаете?
Andrey
[
"делаю себе расширенный GetxController, в котором добавляю поля ",
{
"type": "code",
"text": "isBusy"
},
" и ",
{
"type": "code",
"text": "hasError"
},
" и отдельный виджет для отображения загрузки/ошибки, который потом использую по всему приложению"
]
Andrey
дальше для экранов использую модель, которая наследуется от этого расширенного GetxController'а
Alexey Odinochenko
Всем привет. Ищу разработчика простеньких android приложений. Если заинтересовало, пишите в личку.
Артём Ефименко
Итого у вас получаются аналогичные проверки есть ли ошибка/загрузка, чтобы показать тот или иной виджет
Andrey
ну естественно, только эта проверка делается в одном базовом классе
Mitai
[
{
"type": "link",
"text": "https://t.me/dartlang_jobs"
}
]
Madi
как сделать такую кнопку?
Артём Ефименко
я думаю вопрос за обводку
Madi
да, вокруг плюса сделать такие границы
Артём Ефименко
[
{
"type": "link",
"text": "https://pub.dev/packages/dotted_decoration"
}
]
Пашка
или ему нужно что бы были пробелы между?
Andrey
так напиши как ) что бы человеку обьяснить)
Madi
спасибо, а без сторонних пакетов нельзя это сделать?
Артём Ефименко
с таким не сталкивался, не подскажу
Артём Ефименко
можешь посмотреть код либы, может там всё просто до безобразия, забери кусочек и всё
Пашка
[
{
"type": "link",
"text": "https://stackoverflow.com/questions/55373829/how-to-create-a-dotted-border-around-a-box-in-flutter"
}
]
Артём Ефименко
аналогичный код что в либе которую сбросил
Артём Ефименко
ну ладно, дело вкусов
Артём Ефименко
если время позволяет разобраться и сделать самому - лучше само собой самому написать
Пашка
ну можно и чужую заюзать
Пашка
в работоспособности
Артём Ефименко
примеры достоверные, так что думаю проблем с той либой не будет
Артём Ефименко
но лучше всё равно проверить
Артём Ефименко
может в каких кейсах проебётся
Roman Vasiliev
лучше посмотреть в исходник и подпиздить осмысленно, если кода мало
Артём Ефименко
да там один класс декорации и всё
Eugene Kostyuk
Привет! Подскажите подалуйста, как сделать такое отображение, через грид не очень выходит
Andrey
есть кто-нибудь дружит с bash?)
Eugene Kostyuk
Похоже на правду, спасибо!
Andrey
нужно сделать простенький скрипт по распаковке архива и переносу файлов с заменой, если есть что менять
Eugene Kostyuk
Все равно спасибо)
Madi
Как сделать чтобы этот divider в list view начинался не с края экрана, а с отступом?
Michael Bazilique
Паддинг
Пашка
он лист вью обернул падингом
Пашка
ему надо обернуть item падингом
Andrey
[
"у ",
{
"type": "code",
"text": "Divider"
},
" есть ",
{
"type": "code",
"text": "indent"
},
" и ",
{
"type": "code",
"text": "endIndent"
},
""
]
Michael Bazilique
я о том же
Michael Bazilique
что сам div нужно в падинг одеть
Andrey
[
"если вертикальный, то ",
{
"type": "code",
"text": "height"
},
""
]
Пашка
лучше поправьте меня если я не прав
Andrey
я за то, чтобы не использовать дополнительный виджет, если текущий позволяет сделать то же самое
Пашка
падинг разве не ограничивает индент?
Madi
спасибо, это то что нужно
Пашка
ну у него листвью обернут падингом
Пашка
как у дивайдера индент выберется за падинг?
Vyacheslav
[
"Уважаемые, подскажите, как в запросе на получение юзера из Фейсбука добавить маркер клиента, чтобы получить фото юзера? \nМой запрос такой\n",
{
"type": "pre",
"text": " final graphResponse = await http.get(\n 'https://graph.facebook.com/v2.12/me?fields=name,first_name, picture.type(large),last_name,email&access_token=$token');",
"language": ""
},
""
]
Andrey
так не надо так делать) на дроиде тогда glow будет криво выглядеть
Michael Bazilique
посмотри в доках
Пашка
и я вообще сторонник выключать этот гло
Пашка
Мб потому что привык к iOS
Пашка
вообще пугает этот гло
Vyacheslav
[
{
"type": "link",
"text": "https://developers.facebook.com/docs/graph-api/reference/v9.0/user/picture"
},
"\nВот доки, подскажи, куда посмотреть? Честно, не понимаю"
]
Ugin
[
"Кто подскажет? Не получается записать файл в папку на телефоне, использую такой простой код и ничего:\n",
{
"type": "pre",
"text": "import 'dart:async';\nimport 'dart:io';\n\nimport 'package:path_provider/path_provider.dart';\n\nclass LogStorage {\n\n Future getFilePath() async {\n final Directory appDocumentsDirectory = await getApplicationDocumentsDirectory();\n final String appDocumentsPath = appDocumentsDirectory.path;\n\n final String filePath = '$appDocumentsPath/log.txt';\n\n return filePath;\n }\n\n Future saveFile() async {\n final File file = File(await getFilePath());\n print(file);\n file.writeAsString(\"log.txt test contents\");\n }\n\n Future readFile() async {\n final File file = File(await getFilePath());\n final String fileContent = await file.readAsString();\n print('File Content: $fileContent');\n }\n}\n\nfinal LogStorage storage = LogStorage();\n",
"language": ""
},
"пробую инициировать запись в файл в виджете по кнопке:\n",
{
"type": "pre",
"text": "RaisedButton(\n splashColor: Colors.blue,\n animationDuration: const Duration(seconds: 2),\n padding: const EdgeInsets.symmetric(horizontal: 30, vertical: 10),\n child: const Text('Save File', style: textStyleButton),\n color: Colors.blueGrey,\n onPressed: storage.saveFile,\n ),\n",
"language": ""
},
"права на запись в манифесте стоят: \n \n \n \n \n \n\nлог: I/flutter (21483): File: '/data/user/0/com.example.maoz/app_flutter/log.txt'"
]
|