Программирование : Dart & Flutter по-русски
Alexandr Drobyshev
на 1 час 25 минут ка краз про фаербейз пара слов))
vasilich
Это то что от Фокса рекламировали?
Alexandr Drobyshev
ну я так понимаю это фокс и рассказывает
Arkadiy Filimonov
ребята, как ивенты слать в блок на экзекьют в onchanged в textfield? не работает чего-то
Arkadiy Filimonov
текст накапливается, но ивент не срабатывает
Alexandr Drobyshev
ну примерно в 17 строке ошибка))
Arkadiy Filimonov
на сколько я понял он должен отработать после каждого введенного символа
Alexandr Drobyshev
[
{
"type": "code",
"text": "onChanged: (v) => _messageBloc.add(MessageChanged(v)),"
}
]
Alexandr Drobyshev
все работает)
Alexandr Drobyshev
вчера ток делал
Arkadiy Filimonov
блин, хмм
Arkadiy Filimonov
раз работает то значит проблема не тут)
Alexandr Drobyshev
ну так подключите блокобсервер или прям. вблоке создайте методы добавления эвента и смены стейта
Alexandr Drobyshev
и принтом выводите
Илья Максименко
Equatable используете
Alexandr Drobyshev
я пока кодю включил блокобсервер на все чтоб в консоле видеть где стейт какой тчо не плоились лишний раз например
Arkadiy Filimonov
он включен, там 0 событий во время ввода текста)
Arkadiy Filimonov
точнее нет
Илья Максименко
Всё с ним хорошо?)
Alexandr Drobyshev
ну на add полюбому должно быть)
Arkadiy Filimonov
видимо нет
Илья Максименко
props проверьте у ивента
Alexandr Drobyshev
equtables это если уже бильдер или листенер не работет
Alexandr Drobyshev
а он говорит у него в мапТуевент не попадает даже)
Илья Максименко
Должны быть указаны все поля класса
Arkadiy Filimonov
вот, тишина)
Илья Максименко
Ну так в мапивент тоже не попадет
Alexandr Drobyshev
onEvent в обсерере сработает не зависимо от equtable
Alexandr Drobyshev
что то ты темнишь) кидай к од виджета на пасту)
MMM Stefan
может кто сказать по моей трабле плиз
MMM Stefan
class AuthorizationService extends GetxService { enum authPROVIDERS { // <- error: Enums can't be declared inside classes. (enum_in_class at [emeet] lib\services\authorization\services.dart:17) /// This is a list of all the library built providers // Email, // Google, // GoogleDark, Facebook, // ignore: constant_identifier_names // FacebookNew, GitHub, // ignore: constant_identifier_names // Apple, // AppleDark, // LinkedIn, // Pinterest, // Tumblr, Twitter, // ignore: constant_identifier_names // Reddit, // Quora, // Yahoo, // Hotmail, // Xbox, // Microsoft, }
Alexandr Drobyshev
перевести error: Enums can't be declared inside classes. (enum_in_class at [emeet] ?
MMM Stefan
как оьявить enum внутри класа
Arkadiy Filimonov
да все проще некуда
Alexandr Drobyshev
юзать другой язык, не дарт)
Alexandr Drobyshev
поробуй так
MMM Stefan
е.... а всьотаки, что не так с enum ? мож костыль какой есть?
Alexandr Drobyshev
[
{
"type": "link",
"text": "context.read"
},
" ().add"
]
Alexandr Drobyshev
ну я не спец по дарту далеко) но там написано что в дарте нелзя так делать) почему нужда именно в классе?
Arkadiy Filimonov
о спасибо, родной
Alexandr Drobyshev
ну то есть может из за того что ты не напсиал listen: false будет перестроение и туда не зодохит)) но я сомневаюсь конечно
Arkadiy Filimonov
сработало
Alexandr Drobyshev
а ну значит зря сомневался ??
MMM Stefan
чтобы была возможность работать внутри класа)
Alexandr Drobyshev
просто of(context) - будет перерисовывать виджет каждое обращение вроде бы
Andreu
чую джавистские штучки, чтобы access был только из родительского класса)
Alexandr Drobyshev
так если ты обявишь рядом с классом, нельзя будет работать?)
Илья Максименко
да, реально, дизинфу вбросил
Arkadiy Filimonov
да там рекомендуют не юзать это, конечно
MMM Stefan
будет, но хочу внутри) я не понимаю почему же нельзя... вот в упор)
Alexandr Drobyshev
ну сдлеай приватный
Alexandr Drobyshev
имя начни с _
Alexandr Drobyshev
не будет доступен вне файла
Alexandr Drobyshev
вроде бы))
Илья Максименко
или BlocProvider.of
MMM Stefan
ок, просто я думал мож кто обьяснит такое странное правило)
Alexandr Drobyshev
ну по мне енум это тип, как бы логично что тип обхявляют вне класса))
Alexandr Drobyshev
но в целом пофиг
Rodion Mostovoy
Ребят, а Flutter Web кто как сейчас деплоит?
Константин Федуров
ты про то, какой командой?
Пашка
деплоить на гит можно, на файрбейз
Rodion Mostovoy
да, а можно и на свой фтп сервер. вот что сейчас используют для автоматизации этого процесса? чтобы кнопку нажал из студии и вуаля - прилажка обновлена.
d
Можно настроить GitHub Actions чтоб деплоило
Tim
Хм, а такой дропдаун готовыми виджетами не сделать, да? Нужно кастомайзить?
Ivan
это не дропдаун, больше похоже на Expansion tile
Tim
Визуально - возможно, но поведение нужно именно как у дропдауна (причем классического, а не как в material)
Павел
Всем привет. Сделал аутентификацию на firebase и соцсети. На ios планшетах серьезный баг. Гугл и фейсбук открывают окно аутентификации не на полный экран и если тапнуть вне его, то оно пропадает и уже его не открыть. Приложение виснет намертво. И самое главное, никаких событий не передается внутрь и никакие ресеты этих либ не помогают. Кто-то сталкивался?
Павел
Пробовал все уже) ДОпустим я получил null . И я и так сижу в своем экране. Следующий тап должен опять открыть consent screen . А он типа открыт и не открывается
Павел
То есть ipad сворачивает окно куда-то вниз и считает его активным. И google_sign_in уже его не открывает
Павел
И кстати try catch тоже не отрабатывает, потому что ошибки то нет
Павел
думал я виноват. Поставил example с google_sign_in
Павел
Вот думаю, а может нормальное поведение ios
Павел
пробовал и на 13 и 14
Павел
Что интересно, на андроиде открывает в полный экран
Павел
и на телефонах всех тоже
Павел
давай google-info.plist сброшу?
Павел
Вот что интересно! У меня есть еще проект. Там делал через flutter_web_auth. Только что попробовал. Не виснет)
Павел
Наверное прийдется на нем делать
Павел
Там я контролирую открытие webview
Павел
Была бы опция открытия модалки на весь экран без возможности тапа
Павел
интересно, по всему миру и уже год (пробовал на google_sign_in 4.0.0) это есть
Павел
и никто не попробовал тапнуть вне попапа?
Павел
у меня приемщик опытный)
Павел
нет, там на весь экран попап
Павел
нет возможности тапнуть вне
Павел
тупик редкий) думал всегда есть выход. А тут прямо тупик
Ilia
А что если попап сделать не dismissible?
Павел
я им не управляю. это либа google_sign_in. Она только один метод дает
Andrey
народ, кто на бете сидит, с гугл картами всё нормально? на ios не срабатывает тап - отдаляет камеру, а на дроиде просто вылетает я просто не пойму то ли от того, что у меня сейчас мак на арме, то ли версия флаттера глючная (1.25.0-8.1.pre)
Alexandr Drobyshev
а на иос я так поимаю только с гугл картами не зарелизить?) я прошлый рпоект запускал, там тупо кнпока открыть в картах, и точку передает, были яндекс гугл тугис эпл завернул прилу) говорят не нашли эпл карт)) пришлось добавить
Alexandr Drobyshev
просто интересно, в новом проекте планируется карту выводить с точкой, думаю не добавят если будет гугл карта на иос? надо обязательно эпл или выбор но чтоб был эпл? или все равно добавят?
Alexandr Drobyshev
смотрю стрим фокса, он там написал bloc и у него бах и файл заполненый)) как он это сделал? ??
Alexandr Drobyshev
хочу тоже так
Alexandr Drobyshev
android studio
Пашка
они у него для IntelliJ
Пашка
ну а вообще посмотрите в маркет плейсе в студии
Danil
Как быстро добавить padding к виджету в VSCode? Я знаю, что такая функция есть в Android Studio.
Ed Khalturin
[
"Здравствуйте, вопрос по флаттеру. Имеется ListView внутри StatelessWidget. В элементе этого ListView хочу назначать карточке случайный цвет. Для этого назначил ключ ValueKey(",
{
"type": "link",
"text": "myElement.id"
},
") (значения ключей уникальны) для корневого элемента списка (он StatefulWidget), а сам цвет инициализирую в initState(). Но когда я пролистываю список, цвета сбрасываются. И в консоли вижу, что для каждого элемента повторно вызывается initState(), и соответственно цвет назначается заново. \n\nРанее пробовал сделать также в ListView.builder(), но прочитал что он такое не поддерживает изначально. Поэтому пробую в обычном ListView, но и тут какое-то странное поведение initState() — по докуметнации должен вызываться только один раз для стейта, а тут постоянно при скролле.\n\nПодскажите, почему происходит такое поведение и как можно от него избавиться?\n\nКод: ",
{
"type": "link",
"text": "https://gist.github.com/DVegasa/42714ed4f6ac90e6c7aa213fcd9260f7"
},
"\nВывод консоли: ",
{
"type": "link",
"text": "https://gist.github.com/18341950e5ae9bb61d8494ec5612a806"
},
""
]
Ed Khalturin
Попробуй навести курсор на нужный виджет, нажать Alt+Enter. Там должно быть "Add widget" (или даже "Add padding"). Он обернёт этот виджет правильно в скобки
Юрий Ионцев
Добрый день, пожалуйста подскажите. Как написать функцию swap(a, b) Не извращаясь с классами, чтобы передавать значение по ссылке?
Map list = { 1:1,2:2,3:3, }; int age = 0; while (age < 10) { age++; if (age == list.values) continue; print(age); } я тут решил поексперементировать и захотел некоторые значения пропустить так вот как можно вписать в if несколько значений типа if (age == 2,3,4,)
я понимаю что так нельза но есть ли альтернатива ?
?????????? | (• ?•)| (????)
list.containsValue(age)
Sasha
age == 2 || age == 3
?????>?Сергей Куликов ????
[
{
"type": "link",
"text": "https://pub.dev/packages/get_it"
},
"\n в помощь"
]
Lapis Cursed
Уже сделал через провайдеры.
EcsFlash-
[
{
"type": "mention",
"text": "@terraideas"
},
" слушай, у тебя случаем не завалялся где нибуть пример с использованием листенера?"
]
EcsFlash-
А то чет не доходит
EcsFlash-
addListener интересует
Alexandr Drobyshev
Ну дома буду вечером
Alexandr Drobyshev
Покажу
Alexandr Drobyshev
Ща с телефона и не у компа)
Alexandr Drobyshev
Ну и писать адд не обязательно) можно юзать BlocListener или. BLOCconsumer
Tim
initState вызывается один раз при создании какого либо виджета, тут все верно. Тут фишка в том, что ListView как-то уничтожает те элементы, которые сейчас не видны на экране. Думаю, дело именно в этом
Tim
if ([2, 3, 4].contains(age))
Tim
Все же правильно выводит. А Вы что ожидаете?
Tim
Ознакомьтесь с документацией contains, если есть вопросы
Evgenii Orlov
У вас ложно положительное выражение в вашем случае
я хотел в точности до наоборот что бы 1 2 3 из 10ти не выводились
Evgenii Orlov
Тогда сделайте отрицательный кондишн
Tim
[
"Тогда:\nif ( ",
{
"type": "bold",
"text": "!"
},
" [2, 3, 4].contains(age))"
]
DVS (Read The F.ng Manual) Studio (NoHello)
[
"ну или ",
{
"type": "code",
"text": "if ( [1, 2, 3].contains(age)) continue;"
},
""
]
большое спасибо ребят я буду каждый способ повторять и запоминать
! знак впереди делает метод отрицательным?) как интересно где можно об этом прочитать ?
DVS (Read The F.ng Manual) Studio (NoHello)
[
{
"type": "link",
"text": "https://dart.dev/guides/language/language-tour#logical-operators"
}
]
Anton Kowalski
Что за ошибка? Почему может выскакивать?
Tim
передаешь null туда, куда должен передавать int
Evgenii Orlov
null safety гугли
MMM Stefan
ребятки порекомендуйте фришную красивую анимацию на весь экран, (нужно на заставку процеса автоторизации, это может занять 1-3 секунды), желательно с эелементами рандома
Anton Kowalski
спасибо, нашел
H7000
проблема решилась установкой win10. может и полной переустановкой win81 тоже бы решилась
Lapis Cursed
А стримы предполагают заканчиваться после ошибки?
Lapis Cursed
Если я подписываюсь на стрим, там вылетела ошибка, надо его пересоздавать?
Пашка
[
"Splash Animation на ",
{
"type": "link",
"text": "pub.dev"
},
""
]
Илья Максименко
Это случайно не та которая происходит при смене темы в телеге
Илья Максименко
Хочу такую
Пашка
это при открытии приложении
MMM Stefan
при запуске приложения - немного не то, в андроиде можно только иконку и фоновый цвет задать, а уже когда запущена апка - уже что угодно
Andrei Pavlov
Могу ли я иcпользовать FutureBuilder с Future ?
Anton Kowalski
Как повернуть Icons при нажатии на него на 90 градусов с анимацией?
Максим Б.
Добрый день. Ищу Junior+ или Middle-разработчика на Flutter на part-time (но долгосрочную, > года, с возможностью в будущем попасть в штат при взаимном интересе) подработку на ~10 часов в неделю на fashion-tech проект. В команде уже есть тим-лид и 2 middle-разработчика. Работа по договору, оплата раз в спринт (2 недели). Ваше местонахождение роли не играет. С выбранным кандидатом подписываем NDA. Если вам интересно, пишите в ЛС. Интересует ваш опыт, портфолио и стоимость часа. Спасибо за внимание и хорошего дня)
EcsFlash-
у TextField есть строгое ограничение кол-ва символов в нем
Evgeny Cherkasov
Да вроде работает и с Future
Andreu
Конструктор класса уже совсем лень посмотреть? Конечно есть
Mitai
[
{
"type": "link",
"text": "https://t.me/dartlang_jobs"
}
]
Lapis Cursed
Ребят, кто-то работал с gps?
?????????? | (• ?•)| (????)
[
"В Foreground использовал ",
{
"type": "link",
"text": "https://pub.dev/packages/geolocator"
},
"\n\nВ Backgroud'е не пробовал ещё"
]
Lapis Cursed
Он как-то вообще не интуитивно работает, то работает, то нет, и это на эмуляторе, подрубил forceAndroidLocationManager: true, на эмуляторе заработал, на устройстве не работает, в итоге гадание на кофейной гуще, причем не факт вообще, что для других устройств подойдет.
Lapis Cursed
В доках написано, что все устройства вычисляют по-разному, выходит, придется перебирать все варианты, пока не получишь какую-то инфу?
Алексей Александрович
[
{
"type": "link",
"text": "https://github.com/rekab-app/background_locator"
}
]
?????????? | (• ?•)| (????)
На ios, на Android эмуляторе и на oneplus 7 не было проблем
Lapis Cursed
22 Api на эмуляторе, это мало, наверное, да?
Alexandr Drobyshev
[
{
"type": "code",
"text": "LocationServices.getFusedLocationProviderClient(getApplicationContext());"
}
]
Alexandr Drobyshev
работает на андроиде без проблем
Alexandr Drobyshev
пока закзачик не обращался с тем что координаты не определяет
Alexandr Drobyshev
[
{
"type": "code",
"text": "mLocationManager = (LocationManager) getApplicationContext().getSystemService(Context."
},
{
"type": "italic",
"text": "LOCATION_SERVICE"
},
{
"type": "code",
"text": ");"
},
"\nа вот эта штука не определяла фекбГпс по этому пришлось отказаться"
]
Anton
есть пакет geolocator
Alexandr Drobyshev
пакет для бекграунда?
Anton
А ну про бекграунд я не видел вопроса
Lapis Cursed
Да-да, речь о нем же, в общем я использовал forceAndroidLocationManager: true и качество на медиум поставил.
Alexandr Drobyshev
если челу надо в сервисе там пара сток кода нативного, очевидно у него что то еще в сервисе будет
Alexandr Drobyshev
а я видел вроде про бекграунд писали) не знал что не для бекграунда надо
Anton
[
{
"type": "link",
"text": "https://pub.dev/packages/background_location"
}
]
Alexandr Drobyshev
ну так получит этот сервис что то и что дальше? как мне его в моем фореграунд сервисе юзать?
Alexandr Drobyshev
я не понял если чесно
Alexandr Drobyshev
и решил что проще сови 5 строк кода напсиать)
Alexandr Drobyshev
ну я хз о чем речь так что может я и не прав)
Alexandr Drobyshev
[
{
"type": "link",
"text": "https://github.com/Almoullim/background_location/tree/master/android/src/main/kotlin/com/almoullim/background_location"
}
]
Alexandr Drobyshev
не вижу чтоб предпосылок что он из бекграунда может дернуть драт код если прила выключена
Alexandr Drobyshev
или я чего то не понимаю
Alexandr Drobyshev
или этот плагин работает ток для активной запущенной прилы ??
Ivan
[
{
"type": "mention",
"text": "@bunopus"
}
]
Anton Kowalski
[
"class TreeView extends StatefulWidget {\n ",
{
"type": "mention",
"text": "@override"
},
"\n _TreeView createState() => _TreeView();\n}\n\nclass _TreeView extends State {\n ",
{
"type": "mention",
"text": "@override"
},
"\n Widget build(BuildContext context) {\n List Items =\n List(); // ignore: non_constant_identifier_names\n TreeItem item = TreeItem(\"Item1\");\n item.AddChildren(TreeItem(\"Item1.1\"));\n Items.add(item);\n Items.add(TreeItem(\"Item2\"));\n Items.add(TreeItem(\"Item3\"));\n return ListView.builder(\n padding: ",
{
"type": "link",
"text": "EdgeInsets.zero"
},
",\n itemBuilder: (context, index) {\n TreeItem item = Items[index];\n return Padding(\n padding: EdgeInsets.only(left: item.level * 17.0),\n child: Visibility(\n child: ListTile(\n title: Text(item.Header),\n onTap: () {\n setState(() {\n item.children.forEach((element) {\n element.IsVisible = true;\n });\n });\n },\n ),\n visible: item.IsVisible,\n ),\n );\n },\n itemCount: Items.length,\n );\n }\n}\n\nclass TreeItem {\n final String Header; // ignore: non_constant_identifier_names\n int level = 0;\n bool IsVisible = true; // ignore: non_constant_identifier_names\n List children = List();\n\n TreeItem(this.Header);\n\n // ignore: non_constant_identifier_names\n void AddChildren(TreeItem item) {\n item.level = level + 1;\n item.IsVisible = false;\n children.add(item);\n }\n}"
]
Anton Kowalski
Написал свой TreeView, но раскрытие неработает, почему? Помогите, IsVisible меняеться.
Anton Kowalski
Я так понял свойство Visible не меняется.
Roman Vasiliev
build может вызываться сколько угодно раз, не советую привязываться к этому, даже если есть уверенность что подписки на данные в нем нет
Roman Vasiliev
build должен использоваться только для построения дерева виджетов, никакой логики сторонней вне коллбэков
Anton Anokhin
[
{
"type": "link",
"text": "https://twitter.com/mraleph/status/1340320215297478657?s=21"
}
]
Hellomik
Кто знает как вибрацию сделать как для Таймера у Айфона?
Ivan
HapticFeedback.selectionClick();
Ivan
если я тебя правильно понял)
|