Программирование : Dart & Flutter по-русски
Урусай
А не для того что бы там вычислять что-то во время погибания экрана
Andreu
Omg, ты думаешь если ты там сделаешь async функцию и будешь что-то считать вернув в итоге фьючу с true, то мир рухнет?)
Урусай
willpopscope не вызывается на cupertino виджетах
Урусай
Не, не так. Вызывается. Но не всегда. Например купертиновский свайп не работает если есть WillPopScope, и сами onWillPop не срабатывают
Andreu
Я так понимаю эта проблема связана с CupertinoApp? Не замечал этих проблем с MaterialApp
Andreu
А хотя про свайп да, помню
Урусай
Да какая разница чья это проблема? WillPopScope нужен не для того что бы ловить и обрабатывать погибание виджета
Урусай
Точнее экрана в навигаторе
Сергей Пузанов
Благодарю! Завтра проштудирую вопрос)
Kathy Ti
Привет. Есть FocusedMenuHolder, в нём некоторые FocusedMenuItem должны менять данные в зависимости от значения Rx переменной. При нажатии на пункт переменная меняется, однако при следующем вызове меню данные в пунктах остаются прежними. После hot reload данные меняются. Возможно ли данные FocusedMenuItem менять на лету?
Evgeny Cherkasov
Участвовал в подобном проекте. С оценкой Max примерно согласен, если делать все полностью бэкенд, админку, приложение. Вообще есть готовые сервисы.
Evgeny Cherkasov
Что есть FocusedMenuItem?
Kathy Ti
Это пункты выпадающего списка FocusedMenuHolder( menuItems: []
Andrew Ka
У нас же новые уровни абстракции: Flutter+Hasura. Должно быть бодрее-веселее, иначе зачем оно все? ??
Evgeny Cherkasov
Если это какой то сторонний package, то можно посмотреть в документации как с ним работать. А вообще если у вас изменённое значение где то сохраняется, то что мешает его использовать при последующем открытии этого меню.
Anton Tolstik
[
"Привет ?? всем. Необходим человек в мою команду для разработки приложения на Flutter. \n\nНапиши в личку ",
{
"type": "mention",
"text": "@blago_tvorec"
},
""
]
Kathy Ti
значение и используется FocusedMenuItem( trailingIcon: MainController.to.isLocked.value == true ? Icon(Icons.lock_open) : Icon(Icons.lock),
Kathy Ti
значение меняется, а вот иконка и прочее зависящее от значения нет
Kathy Ti
иконка меняется только после hot reload
Kathy Ti
т.е. вроде как все как надо работает, но не обновляется
Kathy Ti
вот и задалась вопросом как еще можно динамически виджет перерисовать
Evgeny Cherkasov
Много способов, начиная от элементарного setState, и далее в зависимости от фантазии
Kathy Ti
простите, это просто я тупая и забыла виджет в Obx завернуть???+?
Evgeny Cherkasov
Принципиально быстрее такой проект вряд ли можно сделать.
Evgeny Cherkasov
Не стоит уж так критично к себе, бывает.
Kathy Ti
Это не критично, я уже 2 часа сижу голову ломаю.??
M_SM
provider или block что лучше новичку ?
vasilich
Это разные вещи)
vasilich
А тебе для чего надобно?
M_SM
я делаю авто магазин
Jason Fox
Провайдер для начала лучше будет ибо блок сложнее немного
Jason Fox
Тогда скорее блок
M_SM
где можна смотреть или прочитать на руском ?
M_SM
provider не подойдет ?
vasilich
Пока что так и не понятно для чего тебе? Стейт менеджить?
Jason Fox
На сайте блока был перевод, но хз, под последнюю ли версию
vasilich
Это уже стало мэмом но provider это не стейт менеджмент. Это врапер над инхеритед виджетом.
vasilich
Есть riverpod от того же автора что и провайдер
M_SM
у меня сейчас такая проблема есть кнопка currentPrice при нажатии изменить currentPrice на другую эти данние из апи
vasilich
Скорее кубит, так как ивенты ему даром не сдались
M_SM
price находится в listview как пересобрать при нажатии на кнопки с новыми даннимы
vasilich
StateFullWidget + setState
M_SM
но уменя кнопка находится на другом виджете
vasilich
Пробросить онТап?
Roman Vasiliev
InheritedWidget лучше
Roman Vasiliev
Можешь начать изучать стейтменеджмент, если хочешь нормально это разруливать, а не плясками во вью
Дмитрий Щербаков
Если интернет магаз , то с провайдером замучаешься и код лапша будет
Дмитрий Щербаков
Пили на блоке
Шардик
Курс START_FLUTTER_2020 (базовое руководство) это стоит покупать?
Шардик
как автор будет актуализировать книгу?
NewBalanceM5
громко улыбаюсь с тебя)
Artur
Vs code просто попроще. Нет нагромождений в интерфейсе.
Artur
Это очень субъективно, конечно..)
Artur
Я вот на getX пересел, пока полет нормальный
Илья Максименко
например?
Илья Максименко
интересно чем вскод мощнее андроид студии
Daniil Kolyasnikov
Куча генераторов кода например
Илья Максименко
с помощью плагинов что-ли?
Илья Максименко
в андроид студии тоже есть генераторы кода
Илья Максименко
и тоже есть плагины
Roman Vasiliev
build_runner watch
Дмитрий Щербаков
vscode прсто жрет меншье оперативки и работает быстрее ;)
Илья Максименко
ну вот единственный плюс
Daniil Kolyasnikov
Есть генератор dto из json ?
Дмитрий Щербаков
интерфейс еще удобный)
Roman Vasiliev
Пока не наставишь плагинов, которых из коробки нет)
Max
Просто у вас слишком слабое железо для продуктов IntelliJ)
Роман
всем привет, подскажите книги в электронном виде по flutter / dart для новичка?
Илья Максименко
потому что функционала меньше наверно)
Daniil Kolyasnikov
Не то. Очень неудобно как по мне с _$ работать
Илья Максименко
вообще блин надо будет попробовать в вс коде пописать
Konstantin Zhogolev
[
{
"type": "link",
"text": "https://javiercbk.github.io/json_to_dart/"
}
]
Илья Максименко
чтобы более авторитетно и объективно рассуждать
Daniil Kolyasnikov
В vscode более удобно рефакторить названия как по мне
Илья Максименко
это тоже в intellij есть)
Илья Максименко
горячих клавиш уйма
Daniil Kolyasnikov
Ну это онлайн , а не в редакторе
Roman Vasiliev
Shift + F6
NewBalanceM5
смысл тебе рассуждать тут, когда ты можешь попробовать и сравнить, ну или просто не пробовать.
NewBalanceM5
будто тебя принуждают
Илья Максименко
типо, я спросил
Artur
Чувак времени не хочет тратить, если преимуществ нет, это нормально
Roman Vasiliev
Привет, я подсяду?
Илья Максименко
какой функционал есть в вс код которого нет в студии
Konstantin Zhogolev
[
{
"type": "link",
"text": "https://plugins.jetbrains.com/plugin/12562-jsontodart-json-to-dart-"
}
]
Илья Максименко
когда будет время тогда попробую
Roman Vasiliev
Превью файла справа разве что, что я знаю
Юджин Баладжахе
[
"Пытаюсь запустить проект на устройстве chrome, пишет странную ошибку. Еще 2 месяца назад все работало. Просто на свежий линукс поставил свежий хром и свежайший флаттер. Я в шоке от гугла:\n\n",
{
"type": "pre",
"text": "$ flutter run -d chrome\nLaunching lib/main.dart on Chrome in debug mode...\nSyncing files to device Chrome... \n19,563ms (!) \nERROR - 2020-10-09 10:54:31.729538\nGET /dwds/src/injected/client.js\nError thrown by handler.\nNoSuchMethodError: The method 'toFilePath' was called on null.\nReceiver: null\nTried calling: toFilePath()\ndart:core Object.noSuchMethod\npackage:dwds/src/handlers/injector.dart 51:41 DwdsInjector.middleware. .",
"language": ""
},
""
]
NewBalanceM5
[
"как сказал ",
{
"type": "mention",
"text": "@mmm_corp"
},
" ",
{
"type": "pre",
"text": "vs code типа более для профи",
"language": ""
},
""
]
NewBalanceM5
больше и доказательств не надо
Daniil Kolyasnikov
Все равно у всех студия стоит ??
Дмитрий Щербаков
которая запускается чисто андроид куски писать)
Daniil Kolyasnikov
Чтобы сдк вручную не ставить
Daniil Kolyasnikov
Со стикером что то не так
Илья Максименко
ему хорошо
Yerassyl Maikhanov
video_player чет не работает
Yerassyl Maikhanov
взял пример с их github
Yerassyl Maikhanov
и не включается
Yerassyl Maikhanov
[
{
"type": "pre",
"text": " com.google.android.exoplayer2.source.UnrecognizedInputFormatException: None of the available extractors",
"language": ""
}
]
Roman Vasiliev
формат стрима не поддерживается знач
Maria
Попробуйте flutter clean сделать и после запустить
Юджин Баладжахе
Спасибо, но не помогло. Может что-то с хром-девтулз, приходится через web-server отлаживать, а это пипец
Eugene
Всем привет, я правильно понял, чтобы запустить флаттер веб, нужно переключиться на ветку дев. Получается если делаешь одновременно моб. приложение, то нужно постоянно туда-обратно переключаться?
Maria
Что-то должно помочь?? ещё можно flutter pub cache repair сделать
Igor
Привет! Пытаюсь сделать экран логина. Что бы был фон картинкой а поверх логотип и кнопка Войти. Но картинка получается занимает пространство только дочернего содержимого..
Roman Vasiliev
ну если хочешь делать мобилку на стабильной, то да
Maria
Можно и на бете веб делать. На стейбле только нельзя
Kirill Aparin
поменяй BoxFit.fill
Roman Vasiliev
Дак место под текст растяни на весь экран
Roman Vasiliev
Он у тебя под размер текста настроен
Kirill Aparin
Согласен, контейнер сам по себе не на весь экран
Roman Vasiliev
SizedBox.expand
Igor
Правильно я понимаю? Сперва контейнер с DecorationImage. В нем контейнер на всю ширину и высоту?
Kirill Aparin
Можно в первом контейнере поставить width и height double.infinity
Igor
Получилось! Спасибо!
Юджин Баладжахе
Не помогло. В принципе можно PWA на мобилке отлаживать, хотя конечно это такое ))
Sergio
Идея, пайчарм, студия, вскод, goland
Илья Максименко
Я про удобные штуки
FantasyOR
Привет. У меня бэкграунд приложения состоит из картинок полученных с бэка. Проблема в вечных перестоениях виджета и вызовах api даже если его этот виджет не трогаешь. Корневой виджет: MultiProvider его child MaterialApp в MaterialApp уже виджет с плитками картинок. Подскажите в каком месте расположить вызов api бэка, что бы инициировалась загрузка только 1 раз при открытии приложения?
Семён undefined
ну в стейт менеджере к примеру
Daniil Kolyasnikov
statefull или stateless бэкграунд ?
Урусай
Тебе stateful нужен
FantasyOR
это понятно, у меня стейт у него метод который уже дёргает api но вот где правильно расположить вызов этого метода - ума не приложу, сейчас он в build методе виджета с картинками
Семён undefined
при инициализации
Семён undefined
build вызывается при каждом обновлении, от этого и спамит
FantasyOR
я полагал, что концепция Provider предполагает отказ от stateFull и хранение данный в стейте, а потом прослушивание изменение конкретных данных через Consumer
FantasyOR
спасибо, сейчас попробую
Урусай
Ну помести тогда загрузку в отдельную модель, ничего страшного в этом нет
Урусай
Для загрузки используй NetworkImage и уже этот объект передавай в Image
FantasyOR
так и делаю, но url нужно получить списком всё равно с бэка и вот этот список зацикливался
Artur
[
{
"type": "link",
"text": "https://flutlab.io/"
}
]
Artur
с онлайн эмулятором
Илья Максименко
Кто-то знает как с помощью библиотеки блок не обновлять весь listview, а только один view списка при изменении одного элемента списка стейта?
Илья Максименко
Что-то по типу list > и подписи на каждый из стримов из ui
Илья Максименко
Или как вы оптимизируете большие списки?
vasilich
Листвью перерисовывает только то что видно +/- потому чаще всего никак)
Evgeny Cherkasov
ListView.builder не подходит?
Илья Максименко
А, да? Ну тогда проблемы наверно нет
Илья Максименко
Надо будет это протестить
Илья Максименко
Мне тут вообще говорили что если использую equatable то перерисуется только один view, индекс которого изменился
Илья Максименко
Но логи говорят обратное
Илья Максименко
Как он оптимизирует?
Evgeny Cherkasov
Как уже сказали выше, рисует только то что на экране + несколько элементов выше и ниже
Evgeny Cherkasov
так что смыслка делать подписку на изменение в каждом элементе нету
Faust L
а кто что скажет за InheritedWidget ?
Дмитрий Щербаков
Это смотря какие пропсы ты добавил для отслеживания
Илья Максименко
Вы проверяли в логах?
Илья Максименко
Может я действительно где-то что-то пропустил
vasilich
Мне кажется что ты оптимизируешь там где не тормозит. Или я не правильно понял?
vasilich
Включи репейнт рейнбоу в тулзах, удобно смотреть что дрыгается)
Илья Максименко
Ну в debug тормозит точно
Дмитрий Щербаков
Не очень понимаю тоже нафига equtable для лист билдера
Илья Максименко
В релизе еще не проверял
vasilich
Эммммм, в дебаг не меряют перформанц
Дмитрий Щербаков
Flutter run --release
vasilich
Это если есть железо)
Илья Максименко
Ну я знаю что в релизе быстрее
Илья Максименко
По-моему эта команда для эмулятора тоже работает
vasilich
В целом мы то ни задачи ни кода не видим) Вангуем во всю)
Илья Максименко
Ну грубо говоря задача такая:
Илья Максименко
Есть список expandable views, при expand появляется список до 20-30 элементов
Илья Максименко
В дебаге чуть тормозило, поэтому решил спросить, может я что-то не так делаю
Илья Максименко
Вообще сам ui в этом плане не очень
Дмитрий Щербаков
,список лист вью или билдер?
Илья Максименко
Может будем переделывать
Дмитрий Щербаков
А данные откуда туда попадают?
Дмитрий Щербаков
Грузятся на лету или уже есть в памяти?
Илья Максименко
Блок билдер
Дмитрий Щербаков
Стейт блока возвращает весь список сразу?
Дмитрий Щербаков
Ну должно быть все норм в релиз сборке
Evgeny Kot
[
"Уже обсуждали AngularDart?\n",
{
"type": "link",
"text": "https://groups.google.com/a/dartlang.org/g/announce/c/Kz84KNBcf3U"
},
"\n>With this release, we also want to take this opportunity to call out a gradual shift of priorities for the project\nWhile adoption of AngularDart has continued to grow rapidly within Google, the external web framework space is highly competitive, and we've only seen modest adoption of the framework by non-Google teams. As such, we’ve shifted our engineering focus towards Google projects such as the new Google Play Console and Google Ads."
]
Andrew Bash
Блин, а я только проект на него хотел переносить.
Andrew Bash
И что теперь делать-то.
Evgeny Kot
Ну, он никуда не девается, но скорее всего Non-nullability ждать полгода-год
Evgeny Kot
Flutter for web, ну или TS, да
Andrew Bash
Я вот думал Flutter for web, но пока непонятно что в итоге будет. Если перейдут на wasm и будет пошустрее, то больше смысла будет переходить. Но опять таки, канвас, все дела.
Andrew Bash
А вы там ещё не переходите на что-то, если не секрет? :)
Andrew Bash
Чекать твиттер?
Evgeny Kot
Ага) Подписывайтесь, ставьте лайки
Ibragim Abbasov
Ребята, привет. У меня вопрос: есть listview.builder в котором рендеряться row. Как задать для row максимальную ширину?
Vadym Lytvynets
MainAxisSize.max разве нет?
Ibragim Abbasov
Не правильно сказал
Vadim Popov
Там по умолчанию так
Ibragim Abbasov
Я хочу, чтобы каждая row занимала 80%
Vadym Lytvynets
сделай веса
Vadym Lytvynets
flex, spacer, expanded и тд
|