Программирование : Dart & Flutter по-русски
Timur Mukhortov
[
{
"type": "mention",
"text": "@zloyrusskiy"
},
" до компа дойти надо, покажу"
]
???Abduxalil ???Raxmonberdiyev
[
{
"type": "link",
"text": "abduhalil.ga"
}
]
Timur Mukhortov
[
"У меня тип с сервера приходят куки при авторизации, а потом уже мне нужно их куда то сохранить и использовать с другими запросами, я их сейчас как в примере кладу в cashe папку и она вроде как лежит в оперативке ",
{
"type": "mention",
"text": "@zloyrusskiy"
},
""
]
Alexander Fyodorov
у тебя в countStream в комментарий закрытие for попало
Alexander Fyodorov
ну ты получаешь эти куки с сервера КАЖДЫЙ раз перед использованием с другими запросами?
Noob Noobskiy
Блин, такую мелочь не заметил) Спасибо
Виталий Фадеев
Кто-то работал с библиотекой in_app_purchase?
Timur Mukhortov
как должно быть: сделал запрос на авторизацию, получил куки, положил их к себе куда то - остальные запросы выполняю с ними сейчас вот так:
Roman Vasiliev
apiResult()..isSuccess ..type ..data
Miller777
Спасибо, понял.
Sergey Hottabych
[
"Делаю экран, у которого фиксированный заголовок и далее Expanded контент\nИспользую метод из документации по SingleChildScrollView.\nЕсли контент помещается в экран, то контейнер растягивается донизу (через LayoutBuilder и ConstrainedBox).\nЕсли контент не помещается, то он предварительно раскладывается, и контейнер масштабируется по фактической длине (IntrinsicHeight) и прокручивается.\n",
{
"type": "link",
"text": "https://pastebin.com/KPvtnuRA"
},
"\nПроблема в том, что если контент поменялся (один из чайлдов стал больше размером, то он не помещается в контейнер и происходит переполнение). Я думал, что контейнер должен автоматически подгоняться под новый контент, но выглядит так, как будто этого не происходит."
]
Sergey Hottabych
[
"пример использования\n",
{
"type": "link",
"text": "https://pastebin.com/nmYHvQaf"
},
""
]
Sergey Hottabych
Когда перещелкиваем Tab — свитчер создает более крупный элемент в стоблце — переполнение.
Роман Аблаев
Всем, кто обновился в АС на 4.1.1 и столкнулся с проблемами во Флаттер,в этом видео показано, как решить эту проблему
Роман Аблаев
[
{
"type": "link",
"text": "https://www.youtube.com/watch?v=4iZW9-D_JhU"
}
]
prz
Господа,был ли у кого-то "кекас" с вызовом push voip на ios?
prz
раньше работал fcm onback. потом его убрали. сейчас выкатили dev версию 8+ fcm,в ней снова реализовали,но работает она - не работает.
Andry
Подскажите проекты на гитхабе где ui флаттер в андроид проект существующий встраивается
Andry
желательно с navigator и редукс
Andrey
Как можно сделать такой бордер?
Sergey Shobin
[
{
"type": "link",
"text": "https://pub.dev/packages/dotted_border"
}
]
Alexandr Drobyshev
кто то в реальных проектах юзал запуск флаттер энжин для выполенния дарт кода из своего бек/фореграунд сервиса? нет проблем типа память жрет илил еще что? не убивается процесс операционкой? гугл пропускает на публикацию?
Ivan
делал так, проблем особых не припомню, разве что чуть дольше открывалась чем обычное активити
Alexandr Drobyshev
ну длительность открывания не проблема) просто хочу уйти от дуближа кода флаттер/нейтив, у меня там один и тот же алгоритм и выборка из бд, но вот что то страшно) там голый флаттер просто +50 мб озу добавил) но в целом это может не критично не увреен, вроде ж много жрет если то убивает система процесс
Alexandr Drobyshev
а тут за это люди еще и подписку будут оформлять)) и процесс если умрет будет обидно))
Alexandr Drobyshev
но в то же время, без флаттер, надо любое изменение не забыть продублировтаь нативно))
Alexandr Drobyshev
с другйо стороны у меня foreground а так даже прилы делают для музыки, и в сервисе вон гугл мап работает же когда прилу закрываешь в навигаторе, не думаю что они мнеьше жрут))
Alexandr Drobyshev
вопрос по bloc (flutter_bloc) хотя тут сокрей даже по самому flutter )) допустим я сделал блок который два независимых состояния возвращает на два независимых события к пример PurchaseBloc есть FetchPurchases и DeliverPurchase То етсь при старте я запрашиваю FetchPurchases и получаю напрмиер PurchasesLoaded Все это отрисовало мне список в BlocBuilder<>() Дальеш я кликаю кнопку и шлю в тот же экземлпяр bloc событие DeliverPurchase Стайт меняется на PrchaseDilivered вот тут вопрос, если у меня buildWhen: (state) => (state is DeliverPurchase) то бильдер блока не должен перерисовать мне внутренность. тут как бы все логично но что если виджеш родителя перерисует?)) допустим язык в тубларе изменили или там цвет фона что угодно что заставит перерисовать родетеля, то мой блок будет испорчен? То есть сам виджет BlockBuilder будет перерисован, и в функции builder() он уже получит стейт DeliveredPurchase и не отрисует список продуктов?
Alexandr Drobyshev
То есть я хочу понять как првавлиьней организовывать такие вещи, я сейчас сделал эо просто двумя разными экземплярами класса PurchaseBloc один для получения итемов второй для отправки на сервер покупки, это таки менее громозко чем вообещ двумя разными блоками))
Gorohov Valeriy
[
"Вопрос по video_player. Нужно показывать индикатор загрузки когда видео грузится . Я сделал это подписавшись на ",
{
"type": "link",
"text": "videoController.stream"
},
" и сравниваю buffered.last.end с position. Вроде логично, показываю загрузку только когда текущая позиция воспроизведения очень близка, равна или больше загруженного. Но, у плеера непонятно когда видео продолжает воспроизводится после загрузки, вроде уже 2 секунды с текущей позиции загрузил, а видео еще стоит в паузе. Как определять что видео не начало воспроизводится, т.е. показывать лоадер все время подвисания?\nP.s. это происходит не при инициализации, а уже при воспроизведении при слабом интернете."
]
Alexandr Drobyshev
[
{
"type": "link",
"text": "https://github.com/flutter/plugins/blob/master/packages/video_player/video_player/lib/video_player.dart#L70"
}
]
Alexandr Drobyshev
это не оно?
Alexandr Drobyshev
или isBuffering или isPlaying думаю могут быть тем что надо
Gorohov Valeriy
Нет, isBuffering - не зависит от воспроизведения, оно просто обозначает что грузим, a isPlaying - не зависит от буфферизации, т.к. сам контроллер во время подвисания находится в состоянии воспроизведения. Во всяком случае это по дебагу.
Alexandr Drobyshev
/// Indicates whether or not the video has been loaded and is ready to play. bool get initialized => duration != null;
Alexandr Drobyshev
и это не оно?)
Alexandr Drobyshev
хотя не это точно не оно
Alexandr Drobyshev
тогда сравнивай подзиции))
Alexandr Drobyshev
если одна и та же то висим
Alexandr Drobyshev
[
"а как быть с отписками ",
{
"type": "code",
"text": "ChangeNotifier"
},
"? вот я пописался, чтоб отписаться мне надо ту же функцию передать?\nто етсь ",
{
"type": "code",
"text": "location.addListener"
},
"(() => ...)\nуже не заюзать, ибок ак я потом отпишусь\nпридется делать через метод объекта?\n",
{
"type": "code",
"text": "location.addListener"
},
"(this.updateLocation)?"
]
Gorohov Valeriy
[
"Можно сделать так:\n",
{
"type": "pre",
"text": "Function subscribtion;\n\nvoid subscribe() {\n var parameter = getParameter();\n subscribtion = () {\n print(parameter);\n }\n\n location.addListener(subscribtion);\n}",
"language": ""
},
"\n\nПример специально такой, что бы показать как локальные переменные в callback закинуть, если нужно."
]
Gorohov Valeriy
Можно и методы объекта использовать, если локальные переменные не нужны.
Alexandr Drobyshev
ну да, можно, но оно не особо украсило)) хотя в то же время в стримах не особо удобней, все ранво переменную заводить чтоб отписаться
Gorohov Valeriy
Тебе в любом случае нужно как-то хранить ссылку на слушателя, будет это метод объекта или переменная не так важно.
Alexandr Drobyshev
главное чтоб у каждого метода объекта была своя ссылка))
Alexandr Drobyshev
точнее не метода каждого, а у каждого нового объекта)
Alexandr Drobyshev
[
{
"type": "code",
"text": "_location.addListener(onLocation);"
}
]
Alexandr Drobyshev
вот допустим добавил
Gorohov Valeriy
[
"Можно еще конечно так:\n\n",
{
"type": "pre",
"text": "Function unsubscribe;\n\nvoid subscribe() {\n var parameter = getParameter();\n var subscribtion = () {\n print(parameter);\n }\n\n location.addListener(subscribtion);\n unsubscribe = () => location.removeListener(subscribtion);\n}\n\nvoid deinit() {\nunsubscribe?.call();\n}",
"language": ""
},
""
]
Alexandr Drobyshev
[
"а потом еще раз\n",
{
"type": "code",
"text": "_location.addListener(onLocation);"
},
"\nтот де виджет преесоздал если, и вызвал removeListener(",
{
"type": "code",
"text": "onLocation"
},
") для второго, первый останется же?)"
]
Gorohov Valeriy
Но это уже извращение)
Gorohov Valeriy
Перед подпиской нового, нужно отписать старое, и не важно как ты подписал новое.
Alexandr Drobyshev
почему? я что не могу два подписчика иметь? у меня сейчас два
Alexandr Drobyshev
просто отписку еще не делал
Alexandr Drobyshev
оба работают
Gorohov Valeriy
Т.е. отписку и подписку ты должен контролировать.
Gorohov Valeriy
А, не так понял вопрос.
Alexandr Drobyshev
можно много) вопрос в том что если я напсиал виджет и в нем подписка
Alexandr Drobyshev
ну то етсь виджет в готором initState() { loc.addListener(onLocationUpdate); } dispose() { loc.removeListener(onLocationUpdate) }
Alexandr Drobyshev
вот я допутим 5 на экран поместил) а потом одн отписал
Alexandr Drobyshev
сслыки на метод каждого объекта будут разные?) по сути метод же один на всех с точки зрения озу?)
Gorohov Valeriy
Остальные останутся
Alexandr Drobyshev
ок спс
Evgeny Cherkasov
Если бы он был статик, то был бы один
Alexandr Drobyshev
это парамтер, а я про метод, метод же с точки зрения озу один по идеи, просто видимо идет учет указателя на сам объект
Alexandr Drobyshev
вроде работает проверил) все ок
ilx13
как вывести меню после длительного нажатие на container
Evgeny Cherkasov
Ну у вас же 5 разных объектов, значит и ссылки разные будут
Alexandr Drobyshev
ну да я уже понял)
ilx13
что то с гугла ничего не нашел. может плугины знаете?
Evgeny Cherkasov
GestureDetector
Alexandr Drobyshev
подскажите, студия обновилась, раньше были всплываюшие окна типа добавить файл в гит? а сейчас это окно стало на весь экран! то есть лбое окно которое было открытие натсроек или еще что стали вкладкой и на весь экран, и при этом стало дико тупить, после того как влкадка с запросом подверждения добавления в гит открылась, секунд 15 висит не закрывается
Alexandr Drobyshev
Invalidate cache и restart не помог
Alexandr Drobyshev
вот например
Alexandr Drobyshev
висит... не чо не жметься, если кликнуть, секнду 15 прошло, кликнулось, потом кликнул в другом место опять 15 сек висит...
Yura Petrov
Чё то на последнюю версию многие жалуются
Alexandr Drobyshev
намертво зависло) пришлось убивать, не могу файл даже переименовать)
Alexandr Drobyshev
о а если не фул скрин студия развернута то вот так и не тупит
Alexandr Drobyshev
то есть если я жму развернуть студию тогда она улетает на новый экран и там все окна диалоговые так же фулскрин табами открывюатся вверху а если на рабочем столе основном она (не фул скрин) то все ок
Антон
Друзья, любой совет! Необходимо в streambuilder вместо listview использовать SliverList
Дмитрий Щербаков
код копипаста откуда то?) зачем там new
Антон
копипаст, но работает
Дмитрий Щербаков
stackoverflow driven development )
Alex Kharechko
удали квадратные скобки они там лишние
admin
Хай ребят, кто может помочь, установил андроид студио, сдк, флаттер, висуал студио, пробую запускать емулятор ошыбки выдает, запускаю проверку в андроиде тоде ошыбки разного рода...вобщем откуда скачать и как настроить чоб все нормально работало? Или у меня ноут старый или что...2015г
admin
Вроде все делал по инструкциям с сайта андроида и флатера
d
Ошибки разные бывают, скидывай их тогда, чтоб было понятно
Nikolay Evloshevskiy
Ошибки в чат
???Abduxalil ???Raxmonberdiyev
[
{
"type": "link",
"text": "https://discord.gg/6vTR73za"
},
" my discord)"
]
admin
Да, виндовс 10 хоум, переустановил вобщем все, запустил доктор
admin
В андроид студио уже есть флатер и дарт плагины
Vyacheslav
[
"Всем привет! \nПодскажите, куда смотреть, проблема при использовании импорта \n",
{
"type": "pre",
"text": "import 'package:firebase/firebase.dart' as firebase;\n",
"language": ""
},
"Как только его добавляю, не собирается приложение, в консоли куча ошибок по типу \n",
{
"type": "pre",
"text": "../../../development/flutter/.pub-cache/hosted/pub.dartlang.org/firebase-7.3.2/lib/src/top_level.dart:1:8: Error: Not found: 'dart:html'\nimport 'dart:html';\n",
"language": ""
},
"Проблема появилась при попытке добавить FCM для веба по этому гайду\n",
{
"type": "link",
"text": "https://medium.com/@rody.davis.jr/how-to-send-push-notifications-on-flutter-web-fcm-b3e64f1e2b76"
},
""
]
admin
Хм, если у меня такое значит все работает? Прога кликер вроде работает
Marcus
[
"flutter create --org ",
{
"type": "link",
"text": "com.company"
},
" app"
]
Andrew Vasilevskii
Привет всем, ставил себе уже кто новую ось на мак?) Интересует как обычно все плохо, и стоит ждать фиксы?)
Andrew Vasilevskii
??, понял, благодарю
Дмитрий
Товарищи, когда мы используем Bloc, нам уже не нужен Stateful виджет? Поскольку в BlocBuilder и в Statelles виджете так же перерисовывается все
Comrade77
Если вы для всех изменений состояний используете bloc, то да. Но можно совмещать, и использовать Statful для простых изменений
Roman Vasiliev
Нет, это не отменяет
Roman Vasiliev
Но если логики в виджете больше не остается, естественно можно сделать его stateless
Дмитрий
Ну это да, а так по производительности, что лучше, может это как-то не очень влияет на statelles
Roman Vasiliev
Никак не влияет. Заметно влиять может только перерисовка в цикле, но это уже ошибка разработчика
Roman Vasiliev
И стейтлесс от этого не спасет
Sergey Hottabych
А виджет-логику можно выносить в хуки.
Sergey Hottabych
Для тех, у кого аллергия на Stateful.
Miller777
Спасибо огромное!
Lokker??
подскажите, пожалуйста, если у меня есть streambuilder, который работает с апи, получает допустим 10 записей и через listview.builder отображает их, то как мне захендлить, что я проскролил уже до конца списка и нужно сделать запрос на следующие 10 элементов (в самой апишке это легко сделать. не знаю конкретно как задетектить, что я проскролил уже в самый низ списка)
Sergey Shobin
[
{
"type": "link",
"text": "https://pub.dev/packages/pull_to_refresh"
},
" можно сверху и снизу детектить"
]
Marcus
Юзай state management
Michael Bazilique
AR дружит с флатером?
Kathy Ti
Подскажите куда смотреть если я хочу в TextField внести какой-то текст не с клавы, а по событию.
Vyacheslav
TextEditingController
Kathy Ti
спасибо, извините за беспокойство, заработалась
Vyacheslav
создайте контроллер, и по событию обращайтесь к нему
Kathy Ti
просто в контроллер текст вносила в onChanged???+?
Семён undefined
одна вакансия лучше другой просто
Семён undefined
[
"NEED A SENOR. $3K\n",
{
"type": "mention",
"text": "@IllllllllllllllllllllllllllllI"
},
""
]
Aleksandr Mishchenko
Le malo, davai 4
Noob Noobskiy
Всем вечер добрый! Можете подсказать, зачем здесь " .build "? Я пробовал убрать его, все равно работает
Aleksandr Mishchenko
Именованный конструктор
Noob Noobskiy
мхм...а зачем его именовать, если он и без этого работает?
Aleksandr Mishchenko
Так можно сделать несколько конструкторов и выбирать какой ты будешь использовать, не все языки это поддерживают
Aleksandr Mishchenko
Возможно,тебя автор этому учит, я ж не вижу весь туториал
Noob Noobskiy
Примерно понял, спасибо
Noob Noobskiy
Автор пишет "Но способа вызвать неименованный конструктор, к сожалению, нет. Другими словами, super(fn, ln), который работает в большинстве иных языков, не работает в Dart". Может книга устарела
Vladislav Zakharchenko
привет всем кто-нибудь делал интеграция со сберовским эквайрингом? может кто помочь проконсультировать немного?)
Aleksandr Mishchenko
Вот и ответ на твой вопрос)
EcsFlash-
Кто нибуть делал так, чтоб когда переходишь на другой экран, сначала был заголовок и значок(индикатор) загрузки а потом уже показало содержимое после заголовка
EcsFlash-
Расскажешь в ЛС как это сделать?
Noob Noobskiy
не, у меня почему то даже без .build работает
AKE
Смотри в сторону OpenCore. Clover с последними обновлениями не дружит
Kathy Ti
Подскажите как прожать виджет насквозь, чтобы среагировал виджет который под ним?
Yevhen Ivanov
[
"Привет всем! Такой вопрос: как получить из api данные по всем супергероям в map, если api возвращает инфу только по одному из них? типа, ",
{
"type": "link",
"text": "https://superheroapi.com/api/access-token/search/name"
},
""
]
?? ??????????????????????????
Настрой проект
Савостьянов Андрей
Тут много вопросов, в том числе, а существует ли виджет "под ним", но советую поиграться с IgnorePointer и AbsorbPointer на вышележащих виджетах.
Kathy Ti
IgnorePointer. Спасибо.
XbIK
коллеги, никто не обновлялся до Xcode 12.2 и Flutter 1.22.4?
XbIK
не делайте этого вообщем??
XbIK
хрен собирается теперь
Temurxon
с каждым обновлением все хуже собирается
Temurxon
то виджет exception
Temurxon
то c плагинами проблемы
XbIK
и это мы ещё на null safety не вышли в stable )
XbIK
вообще будет интересно
tdesc
1.22.3 норм, в 1.22.4 вроде черри пики
tdesc
откатиться назад минут 20 занимает
Roma
ребят, вопросик есть по sqllite. Вообщем я заметил что в основном бд во всех примерах подключения sqllite к flutter приложению пустые и потом через запросы с ними работают. У меня уже есть заполненная бд, которая лежит в директории приложения. Как ее подключить, точнее как определить путь? Сталкивались ли вы с этим? и какие решения у вас были
tdesc
до какой нить официальной строчки в release notes у flutter
Anton Zheltov
не обновляется каэется уже, до 1.17 только
Dima Kotlyarov
Привет парни. нужен совет. у меня массив, в него нужно запихнуть функцию. [{'title':"title!!",'subtitle':"subtitle!!", 'tapFunc': сюда функцию, }];
Dima Kotlyarov
не могу правильно решить задачу. если тупо прописать там функцию - так работатет
Dima Kotlyarov
но хочется её вынести
Dima Kotlyarov
был бы благодарен за совет
Sergey Hottabych
Ну во-первых, у тебя массив или все же Map? Написана полная фигня
Dima Kotlyarov
за фигню конечно спасибо. сомневаюсь, что слово "фигня" мне поможет. есть массив , если я правильно понимаю, в нём , на индексе 0 - объект
Sergey Hottabych
Чувак, это не джаваскрипт, тут нет объектов
Sergey Hottabych
У тебя мапа, вложенная в лист нулевым элементом
Dima Kotlyarov
,не вопрос. в мапу я могу вложить функцию ?
Evgeny Cherkasov
Почему бы нет
Dima Kotlyarov
не могу понять как . например [{ "someFunc': (){}работает }]
Dima Kotlyarov
[{ "someFunc': anotherFunction() }] не работает
Sergey Hottabych
Скобки не надо
Sergey Hottabych
Это ты её как бы сразу вызываешь
Evgeny Cherkasov
[
"без ",
{
"type": "code",
"text": "()"
},
" надо, просто имя функции"
]
Sergey Hottabych
Без скобок это указатель на функцию. Что тебе и нужно
Dima Kotlyarov
не получается. может что то с инициализацией я намутил
Евгений
Привет, мужики! Обновил до Big Sur, теперь ничего не работает, есть инфа когда починят?)
Евгений
В любом случае не обновляйтесь
Maks Kravchenko
[
"List
Илья Максименко
Есть пакет нормальнфй
Илья Максименко
Для этих вещей
Илья Максименко
Или три списка titles, subtitles и functions
Илья Максименко
Но юзать тут мап это говнокод
Evgeny Cherkasov
Вроде планируется добавлять в dart тип Record для подобного.
Илья Максименко
Как-будто в дарте заняться нечем??
Шахзод Джураев
Добрый вчеер! может кто-нибудь подсказать как реализовать такой свитч ?
Роман Аблаев
Интеграцию чего со сберовским эквайрингом, кассу или ПО?
Vladislav Zakharchenko
Кассу
Дмитрий Щербаков
С физ девайсом?
Дмитрий Щербаков
Эквайринговым терминалом?
Роман Аблаев
Интеграция терминала к какой кассе?
XbIK
CupertinoSegmentedControl
Шахзод Джураев
О,Спасибо!
Evgeny Cherkasov
[
{
"type": "link",
"text": "https://github.com/dart-lang/language/blob/793e207e067b31dd26bc6897505e9a6a185f6d41/working/0546-patterns/records-feature-specification.md"
},
"\nВроде полезная вещь была бы."
]
Evgeny Cherkasov
можно таббаром обычным
Евгений
тогда почему после обновы все вот так?
Евгений
флаттер даже переустанавливал
|