Программирование : Dart & Flutter по-русски
Илья Максименко
Ну получается что я создам stateful у которого нет стейта
Илья Максименко
И вообще нет атрибутов
Илья Максименко
С единственной целью ребилднуть виджет после попа
Moby Polo
Наверное, я не доконца понимаю о каком экране с результатами идет речь, тем кодом я подразумевал открытие того экрана, после возврата с которого вам нужен ребилд
Илья Максименко
Выглядит как костыль
Семён undefined
между платформами никаких if-ов есть, есть только адаптация под экраны телефонов и широкие экраны, но это всего лишь одна проверка на ширину
Илья Максименко
Ну pop true это запуск экрана с результатом работы
Moby Polo
Вы можете поискать другой метод, например использовать стейт менеджер, обновляя какую то переменную для ребилда, но в целом - это тоже самое с тз ресурсов устройства, а вот уж использовать под это стейтменеджера - на мой взгялд излишние усложнение ??
Илья Максименко
Ну так я использую блок, это же стейт менеджер?
Moby Polo
Да, pop true - это вернуть на экран назад, там вы можете слушать это событие
Moby Polo
Нет, это паттерн, который в тч реализует стейт менеджер
Moby Polo
В целом я понимаю, что у вас скорее всего два экрана, типо первый экран со списком элементов из репозитория, и экран с редактированием в репозитории. Вы выполняете обновление на втором экране элемента и хотите сделать ребилд первого. У вас неправильный подход, первый экран должен слушать репозиторий
Moby Polo
почитайте про provider / getx, вам будет проще начать в этом смысле
Илья Максименко
Нет, вы неправильно догадались, ситуация немножко сложнее: у меня есть блок в котором я подписываюсь на connectivity и я йилджу стейт когда статус сети меняется
Илья Максименко
Но когда я нахожусь в виджете Б блок билдер виджета А не видит эти йилды
Moby Polo
используйте BlocConsumer , у него есть listener, в нем можно делать чтото в стиле: if ([‘YourEventName’].contains(state.toString())) { //do some staff }
Илья Максименко
А мне надо именно сделать билд
Илья Максименко
Добавить к тексту слово offline например
Moby Polo
Я понимаю, про то и пишу, мб не до конца ясно чтото излагаю, вам дальше лучше скриншотами показать что делаете, как выглядит код и что не получается
Илья Максименко
А хотя в принципе ваш пример тоже подходит
Илья Максименко
Допустим первый экран будет слушать репозиторий, но если я сделаю поп, то всё-равно что он будет слушать, экран не ребилднится, потому что когда придут от репозитория данные, а первый экран будет не активен, он их просто проигнорит
Moby Polo
Нет понятия неактивный экран, они складываются «как бы в стопку», потому важно помнить про их кол-во и точно управлять ими. Чтото вы обратно не так прокидываете, не поленитесь, попробуйте быстренько перекидать все на getx/provider, в тч для сравнения
Илья Максименко
Ну то что они складываются в стэк я знаю, в общем попробую потестить мои кейсы, может я неправильные выводы сделал
Илья Максименко
Но понятие неактивный экран всё же есть)
Илья Максименко
Конкретно насчет того что билд не вызывается
Илья Максименко
По крайней мере в нативе точно
Павел Бабинцев
Круть... это ж золотой эльдорадо...!
Илья Максименко
[
{
"type": "link",
"text": "https://dartpad.dev/b6409e10de32b280b8938aa75364fa7b"
}
]
Илья Максименко
вот репрезентативный пример
Илья Максименко
вроде как это и правильно, что он не должен перестраиваться
Moby Polo
Возможно чтото не так с ссылкой, у меня открывает дефолтный проект с каунтером и кнопкой на StatefulWidget
Илья Максименко
да, блин, оно не сохранилось
Илья Максименко
построил другой пример, который показал мне что виджет может ребилдить себя даже если в данный момент он не последний в стеке
Илья Максименко
[
{
"type": "link",
"text": "https://dartpad.dev/132e0825447ad4858b6c333a26b29b65"
}
]
Илья Максименко
значит действительно проблема вроде как не в этом
Moby Polo
Да, понятие неактивности виджета нет, просто мы видим последний в стеке ??
Илья Максименко
просто в нативе есть всякие onpause onresume вот я и попутал
ilsur
Проясните пожалуйста за что отвечает тайтл? Если к примеру в классе Home у нас будет appBar то в приложении при запуске именно его и будет видно, а для чего нам title тогда?
Ivan
[
{
"type": "link",
"text": "https://api.flutter.dev/flutter/material/MaterialApp/title.html"
}
]
Franz Sjolvge
[
"Привет всем. Я правильно понимаю, что при работе с Intl обращение к переводу будет вида ",
{
"type": "code",
"text": "S.of(context).path.to.translate"
},
"?"
]
Илья Маненков
Ребят кто знает какие нибудь библиотеки сайты и тд, с готовыми ui компонентами flutter , нужно по быстрому накидать приложуху плюс минус красиво , и не париться с дизайном
Andreu
Стандартные material и Cupertino компоненты чем не устраивают?
Vyacheslav
[
"Привет всем, вопрос по сокетам. Такой код при запуске веб-приложения выводит в консоль все сообщения, а вот при запуске на эмуляторе - тишина, никакой инфо. Что не так?\n",
{
"type": "pre",
"text": "class SocketService {\n IO.Socket socket;\n\n createSocketConnection() {\n final token = sl ().getString('token');\n\n socket = IO.io(SOCKET_POINT, {\n 'transports': ['polling', 'websocket'],\n 'extraHeaders': {'Authorization': 'Bearer $token'}\n });\n\n this.socket.on(\"connect\", (_) => print('SOCKET_SERVICE Connected'));\n this.socket.on(\"new_data\", (res) => print('SOCKET_SERVICE new_data $res'));\n this.socket.on(\"error\", (error) => print('SOCKET_SERVICE error $error'));\n}",
"language": ""
},
""
]
Vyacheslav
Чуть подробнее, пожалуйста
Vyacheslav
[
"Я нашел похожий вопрос, но не пойму, где изменить настройки\n",
{
"type": "link",
"text": "https://stackoverflow.com/a/56736444/9631242"
},
""
]
Vlad
Какие параметры вы указываете для соединения?
Vlad
Урлу на сервер и порт?
Vlad
[
"Из того что вы скинули: ",
{
"type": "code",
"text": "http://10.0.2.2:7000 ===== 7000 это порт"
},
""
]
Vlad
Попробуйте заменить его
Vyacheslav
Ага, понял. Да, урл и порт указываю. Попробую
Урусай
Кто нибудь пользовался сервисами от хуавея? Распознаванием текста например
Andrey Kapitonov
У кого нить банили рекламу за хер пойми какие клики?)
Семён undefined
моему другу так вообще весь аккаунт заблокировали, вместе со счетом
Andrey Kapitonov
ну да они все счета блочат и никаких выводов
Andrey Kapitonov
вчера прост пришло письмо счастья, якобы акк заблокировал за трафик, я выяснил у поддержки что это были недействительные клики
Andrey Kapitonov
wtf? я сам вообще ничего не кликал, пользователи чтоле накликали, так сказать беду
Andrey Kapitonov
а он новый открывал потом?
Sergiy Vergun
Всем привет, почему в intellij idea git показывает изменения вместе с двух проектов, когда открыт только один?
Александр
скачал я плпгин для BLOC а как теперьоборачивать виджеты я не пойму
Илья Максименко
как обычно
Александр
ну на лампочке не появляется меню
Илья Максименко
этого вроде нет в его функционале
Александр
ну я сто раз видел как материал оборачивали в блокпровайдер
Александр
как это меню вызвать?
Илья Максименко
там есть один виджет с билдером
Илья Максименко
futurebuilder
Илья Максименко
а провайдер просто widget
Илья Максименко
его можно как blocbuilder юзать
Александр
да не, там меню вызывали и там написано было wrap blocbuilder
Илья Максименко
а дальше альт ентером добить
Илья Максименко
хз, мне вообще кстати интересно может там можно добавить какие-то свои
Илья Максименко
которые часто юзаю
Илья Максименко
по типу лив темплейтов
Илья Максименко
походу никак
Илья Максименко
кроме как писать плагин
Илья Максименко
кто-то это юзает?
Павел Середа
зачем это все нужно
Илья Максименко
хз, экономит время наверно
Павел Середа
вот именно что наверное
Andrey Kapitonov
спички какие-то
Илья Максименко
для удобства
Илья Максименко
ну шорткаты зачем
Andrey Kapitonov
а потом без IDE панику устроишь?
Илья Максименко
тоже для этого
Павел Середа
Без Иде давно никто не работает
Илья Максименко
лол, а куда она пропадет
Илья Максименко
и зачем работать без иде
Andrey Kapitonov
я так, утрированно
Павел Середа
это да, я сниппеты пробовал как то и поймал себя на мысли что во время программирования я больше начинаю думать о шорткатах и сниппетах чем о том что мне действительно нужно сделать.
Илья Максименко
ну надо не перестараться конечно
Павел Середа
а иначе не получится, хз может быть так лишь первое время
Илья Максименко
и я бы даже сказал что те которые тут приведены говно
Илья Максименко
но лив темплейты всё-равно штука мощная
Илья Максименко
нужно смотреть от того с чем чаще всего морочишься
Павел Середа
что за лив темплейты?
Илья Максименко
это в intellij
Илья Максименко
вы из vscode что-ли?
Павел Середа
да, не могу смириться с тормознутостью Иде от жетбрейнс
Илья Максименко
эх, я пока что смирился
Andrey Kapitonov
нормальное оно, не тормознутое
Илья Максименко
но когда куплю норм пк размирюсь
Andrey Kapitonov
у меня по 4 ide бывает включено и все летает
Andrey Kapitonov
vs code тоже довести до уровня jetbrains еще как начнет лагать со своими плагинами
Илья Максименко
а видели бы вы что оно творит со своим языком
Илья Максименко
(котлином)
Franz Sjolvge
[
"Вот. Проблема в том, что я получаю два вида ошибок: \n1) type '_InternalLinkedHashMap ' is not a subtype of type 'String' \n2) error: The getter 'test' isn't defined for the type 'S'\n\nИ не могу понять что не так. Делал всё по ",
{
"type": "text_link",
"text": "гайду",
"href": "https://www.raywenderlich.com/10794904-internationalizing-and-localizing-your-flutter-app"
},
"."
]
Artem
[
"Подскажите пожалуйста, можно ли с Android TV сделать hotspot используя эту либу ",
{
"type": "link",
"text": "https://pub.dev/packages/wifi_iot"
},
"\n\nИли можно только на телефонах тк там есть режим модема?"
]
Moby Polo
[
{
"type": "link",
"text": "https://marketplace.visualstudio.com/items?itemName=FelixAngelov.bloc"
}
]
Александр
А как меню это вызвать ?
Moby Polo
2) очевидно что у вас в классе S нет строк типо String get test => _test;
Vyacheslav
ребят, кто с сокетами работает, не могу победить CORS на вебе и заставить работать socket_io_client на эмуляторе. Как только заголовки на авторизацию добавляю, капец
Moby Polo
Ну открываете ссылку, нажимаете зеленую кнопку Install
Franz Sjolvge
А должны быть? В гайде говорилось что i10n.dart трогать не нужно. Мне на каждый перевод добавлять геттер?
Александр
Ребята как обернуть виджет в блокбилдер из меню? Что бы не руками писать
Andrey Kapitonov
добавьте в allowed headers
Moby Polo
Быть честным, я не открывал указанные вами ссылки, но в целом суть ошибки ясна и решается она так, как я написал. Если вы используете какую то готовую либу, то лучше поискать ее семпл на гитхабе и посмотреть как там делают
Vyacheslav
[
"Вот мой запрос\n",
{
"type": "pre",
"text": " socket = IO.io(_url, {\n 'transports': ['polling', 'websocket'],\n 'extraHeaders': {'Authorization': 'Bearer $token'},\n 'autoConnect': false,\n });\n\n socket.connect();",
"language": ""
},
"\nКуда и что добавить?"
]
Moby Polo
Сначала вы должны прокинуть заголовки в исполняющее окружение. Например, в качестве веб сервера, у нас nginx, тогда в конфиге на нужный location надо написать чтото в стиле: add_header 'Access-Control-Allow-Origin' '*';
Vyacheslav
разраб на бэке говорит - все настроено... я не могу его проверить
Kit Khilobok
Всё, что касается политики CORS, это в большинстве случаев сервер
Vyacheslav
вот как-то так на сервере
Kit Khilobok
А перенаправлений никаких нет?
Kit Khilobok
Типа прокси трафика на другой сервер
Vyacheslav
сейас попробую понять, я в джиэс никакой
Moby Polo
Дайте больше вводных, в целом, можно проверить на том же домене на js, получится ли у странице подключиться к сокету. Думаю, это первый этап, по которому вы можете проверить вообще концептуально, что все работает.
Kit Khilobok
Это, конечно, пальцем в небо, я не занимаюсь сервером) Просто на прошлой работе была похожая проблема и все мне упорно доказывали, что проблема именно у меня, а оказалось сервер
Andrey Kapitonov
а этот мидлеварке точно заюзан?
Vyacheslav
вот мы на своем домене развернули веб - нет этой проблемы, но нереально дебажить, и мобильный клиент не работает
Vyacheslav
на том же домене все ок
Andrey Kapitonov
и еще он на какой хедер ругается?
Andrey Kapitonov
и зачем в хедерах Access-Control-Allow-Headers и прочие? никогда такого не видел)
Moby Polo
[
"Можно начать, например, отсюда ",
{
"type": "link",
"text": "https://ru.wikipedia.org/wiki/Cross-origin_resource_sharing"
},
""
]
Vyacheslav
да, это уже читал, понимаю схему и разницу простого и непростого запроса
Andrey Kapitonov
1. да банально, нужно убедиться какой хедер отправляется и разрешать его 2. убедиться на сервере что middleware работает нормально, он точно используется типа app.use(allowCrossDomain)
Moby Polo
Я больше отвечал на вопрос, зачем те заголовки )
Vyacheslav
[
"точно использует, в коде есть ",
{
"type": "pre",
"text": "router.use(allowCrossDomain);",
"language": ""
},
""
]
Vyacheslav
Могут ли быть такие проблемы из-за настроек cloudflare?
Andrey Kapitonov
в теории да, это же прокти
Andrey Kapitonov
помнится даже с нгинкс такая проблема может быть когда настраиваешь обратный прокси
Temurxon
всем привет,кто работал с Yandex mapkit ?
Temurxon
я не могу найти перетаскивание маркера,или его попросту нету нужно с нуля писать ?
Игорь
В flutter yandex mapkit его нет
Alexander PhatoM
если никто не ответил, там у слайдера ползунок по делениям передвигается, есть поле на количество делний помоему
Alexander PhatoM
ору не могу, у меня 3 проекта сейчас и еще на очереди несколько...
Alexander PhatoM
лучше у фокса спроси, ну можно упоротся, и сделать стэйт типо UpdateState и в листнере его обработать, и кидать его сразу после navigator.pop, но мне кажется это плохая практика
Илья Максименко
а у меня уже заработало))
Alexander PhatoM
а что не так было?
Илья Максименко
в том то и дело что хз, немного причесал стейты, поисправлял логические ошибки
Илья Максименко
но почему оно пофиксилось не понимаю
Илья Максименко
именно yielding стейтов
Илья Максименко
в экране Б
Alexander PhatoM
может перед push стэйт был такой же что и последний перед pop
Alexander PhatoM
именно по сравнению ==
Alexander PhatoM
и он не ребилднулся из за этого
Илья Максименко
не, это я всегда в первую очередь проверяю
Alexander PhatoM
можно как то cupertionpageroute отзеркалить направления? типо при push чтобы слева направо улетел старый виджет...
Alexander PhatoM
не через transform разумеется)
Илья Максименко
мне кажется проще создать свой pageroute с анимацией
Alexander PhatoM
Ну там жесты сразу идут, которые мне нужны, многовато работы будет
Alexander K
Привет Никто не ответил, но я не думаю, что проблема в этом - если у родителя убрать скролл (на гифке видно закомментированное NeverScrollableScrollPhysics - вот если его раскомментировать), то слайдер начинает тут же плавно работать
Alexander K
Пока что решил проблему костыльно, на onChangeStart слайдера через стор ставлю "containerScrollLocked = true", на onChangedEnd "containerScrollLocked = false", а в самом контейнере обсервер, чтобы если containerScrollLocked, то ставилась физика NeverScrollableScrollPhysics Вроде работает, хоть и говно, конечно
Alexander PhatoM
может там конфликт какой между обработчиками жестов...
Alexander K
да, похоже на это хотя странно, вроде вполне стандартная ситуация, скролл в скролле
Alexander PhatoM
попробуй обернуть слайдер в gesturedetector, а в нем через behaviить запретить обработку всего, что снизу
Alexander K
Почему снизу? слайдер ведь и так нижний в дереве, там у родителя скролл
Alexander PhatoM
ну ты меня понял)
Alexander PhatoM
там есть 3 варианта, я не помню как точно нужен
Alexander K
translucent, opaque, deferToChild попробовал все три, не поменялось ничего, такой же затык при начале скрола
Alexander K
Ладно, пока что оставлю старый вариант) и так уже много времени на это потратил Если вдруг кому поможет, для слайдера
Evgenii Elchev
Во флаттере есть какой нибудь виджет, типо master details из ios. Что бы на больших экранах отображал рядом два экрана, к примеру меню и контент, а на маленьких он отображал только меню, а контент уже открвался по навигации?
IB Akhrorov
Можно скрин?)
Илья Максименко
Мне кажется это как в телеге
Temurxon
а вы с android map kit работали ?
Evgenii Elchev
[
"да, я сначала название не помнил, пока писал сюда вспомнил, пошел погугл уже и нашел пяток статей на медиуме как это делать руками, значит нет такого стандартного) ",
{
"type": "link",
"text": "https://stefangaller.at/app-development/flutter/responsive-master-detail/"
},
""
]
ILYOS
есть те кто на дарте телеграм боты писал?
Evgenii Elchev
в ios из коробки, очень удобно)
Игорь
Нет, только с плагином под flutter
Temurxon
там просто request ами можно получать ответы
Temurxon
минус в том что нужно весь message json получать и парсить его
Temurxon
или только апдейты
IB Akhrorov
В чем проблема
ILYOS
Нет просто хотел узнать его скорость по сравнению с python
IB Akhrorov
Он быстрее чем питон
IB Akhrorov
Так как компилируется а не интерпретируется
Илья Максименко
Это конечно удобно, но я думаю если вы делаете верстку для планшетов и телефонов, то таких моментов будет много где нужно реализовывать это самому
Илья Максименко
И из коробки решений будет недостаточно
Evgenii Elchev
на самом деле не так уж и много
Evgenii Elchev
посмотри на телеграм на пк)
Evgenii Elchev
вообще сделать такую верстку очень просто и самому, а вот навигацию правильно настроить уже сложнее)
Alexander PhatoM
как это понимать???
|