Программирование : Dart & Flutter по-русски
Roman Vasiliev
вы просто все не понимаете, ему нужен лист который займет все свободное от хедера место, и при этом будет фикс размера, вот так
Aleksandr
Vertical viewport was given unbounded height.
Nikita Domnitskii
Это с экспандедом?
Roman Vasiliev
тайл не подходит под требование значит, придется с ним копаться
Roman Vasiliev
скорее всего
Aleksandr
С expanded тоже самое.
Nikita Domnitskii
Ну так проблема в хэдере может?
Roman Vasiliev
попробуй с наипростейшим тайлом, текстовым например, если ошибка пропадет, то ясно куда копать правда это будет боольно
Nikita Domnitskii
Ну или с содержимым листвью
Сергей Бугай
[
"не подскажете норм swipeable row плагин ? Что то типа такого но для флатер\n",
{
"type": "link",
"text": "https://www.npmjs.com/package/react-native-swipeable-row"
},
""
]
чумак
Привет, не подскажите где взять векторные картинки? Бесплатно разумеется.
Evgeny Cherkasov
Если кому интересно, проблема решилась банально просто: при использовании моего виджета во FlatButton, его надо просто обернуть в Row
Evgenii Elchev
Это костыль. Ты его должен наоборот, при использовании в row оборачивать в expandable
Evgenii Elchev
А не наоборот)
Evgeny Cherkasov
Почему костыль? Он внутри себя содержит Expanded
Evgeny Cherkasov
Просто условие использования виджета - обернуть в Row
Evgeny Cherkasov
Как сделать чтобы он автоматически определял где он используется и соответствующим образом либо заворачивался в Expanded либо нет, я не нашел
Evgenii Elchev
Потому что ты: 1) сделал все равно не универсально 2) обернул в два лишних виджета
Sergey Salnikov
ShaderMask гугли
Evgeny Cherkasov
1. Почему не универсально? Суть виджета в том, что он позволяет редактировать текст по месту. В исходном режиме он просто показывает Text. В режиме редактирования показывает TextField. У меня пока есть два юс кейса: - Виджет встраивается в обычный текст. Для этого исходный текст надо разбивать и вставлять в Row: Text('до'), InlineTextField('редактируемый текст'), Text('после'). - Виджет используется в списке, чтобы можно было редактировать элементы списка прямо по месту. Тут элементами списка у меня были кнопки, и просто так он в них не работал. Но если завернуть в Row внутри кнопки, то все ОК. 2. Два каких виджета лишние и почему?
Evgeny Cherkasov
Возможен еще кстати вариант с использованием его внутри TextSpan. Но я еще не проверял этот вариант. Возможно надо посмотреть как устроен TextSpan, может там что то полезное для моего случая есть.
Evgeny Cherkasov
[
"Добавил его в пакет если кому интересно ",
{
"type": "link",
"text": "https://pub.dev/packages/uic#inlinetextfieldinlinetextfield"
},
""
]
Maksim Schennikov
всем привет. кто-нибудь как-то кастомизировал ExpansionPanelList/ExpansionPanel или делал что-нибудь подобное?...
Ivan L
Кто-нибудь пользует дарт вне флаттера?
?
юзаю что бы написать апи, который потом заюзаю в flutter xD
Mark
Да, dart2native крутая штука
Ivan L
Фреймворк для rest API :)
?
юзаю обычный http пакет xD
Mark
Бекенды: http, сокеты
Mark
cli приложения можно
Ivan L
А что это даёт? Почему не на более мейнстримовом чем-нибудь?
Mark
Так как флаттер ещё десктоп полностью не держит
Ivan L
Почему не java, dotnet, nodejs?
Mark
Ничего наверное?) Просто удобно, функционала дартовского обычно хватает
Mark
Если нужно что-то более сложное, работа с картинками или что-то такое, то тут да, дарт вряд ли подойдет
Mark
А если простенький бекенд для флаттер аппки то вполне хватает
Ivan L
Всем спасибо, просто было любопытно :)
Ivan L
Кстати, читал что в нативе дарт тормознее, чем на вм.
S
[
"Exception in thread \"main\" java.util.zip.ZipException: error in opening zip file\n at ",
{
"type": "link",
"text": "java.util.zip.ZipFile.open"
},
"(Native Method)\n at java.util.zip.ZipFile. (",
{
"type": "link",
"text": "ZipFile.java:225"
},
")\n at java.util.zip.ZipFile.(",
{
"type": "link",
"text": "ZipFile.java:155"
},
")\n at java.util.zip.ZipFile.(",
{
"type": "link",
"text": "ZipFile.java:169"
},
")\n at org.gradle.wrapper.Install.unzip(",
{
"type": "link",
"text": "Install.java:214"
},
") \n at org.gradle.wrapper.Install.access$600(",
{
"type": "link",
"text": "Install.java:27"
},
") \n at org.gradle.wrapper.Install$",
{
"type": "link",
"text": "1.call"
},
"(",
{
"type": "link",
"text": "Install.java:74"
},
")\n at org.gradle.wrapper.Install$",
{
"type": "link",
"text": "1.call"
},
"(",
{
"type": "link",
"text": "Install.java:48"
},
")\n at org.gradle.wrapper.ExclusiveFileAccessManager.access(",
{
"type": "link",
"text": "ExclusiveFileAccessManager.java:65"
},
")\n at org.gradle.wrapper.Install.createDist(",
{
"type": "link",
"text": "Install.java:48"
},
") \n at org.gradle.wrapper.WrapperExecutor.execute(",
{
"type": "link",
"text": "WrapperExecutor.java:128"
},
")\n at org.gradle.wrapper.GradleWrapperMain.main(",
{
"type": "link",
"text": "GradleWrapperMain.java:61"
},
")\nRunning Gradle task 'assembleDebug'... \nRunning Gradle task 'assembleDebug'... Done 9,9s\n[!] Gradle threw an error while trying to update itself. Retrying the update...\nException in thread \"main\" java.util.zip.ZipException: error in opening zip file\n at ",
{
"type": "link",
"text": "java.util.zip.ZipFile.open"
},
"(Native Method)\n at java.util.zip.ZipFile.(",
{
"type": "link",
"text": "ZipFile.java:225"
},
")\n at java.util.zip.ZipFile.(",
{
"type": "link",
"text": "ZipFile.java:155"
},
")\n at java.util.zip.ZipFile.(",
{
"type": "link",
"text": "ZipFile.java:169"
},
")\n at org.gradle.wrapper.Install.unzip(",
{
"type": "link",
"text": "Install.java:214"
},
")\n at org.gradle.wrapper.Install.access$600(",
{
"type": "link",
"text": "Install.java:27"
},
")\n at org.gradle.wrapper.Install$",
{
"type": "link",
"text": "1.call"
},
"(",
{
"type": "link",
"text": "Install.java:74"
},
")\n at org.gradle.wrapper.Install$",
{
"type": "link",
"text": "1.call"
},
"(",
{
"type": "link",
"text": "Install.java:48"
},
")\n at org.gradle.wrapper.ExclusiveFileAccessManager.access(",
{
"type": "link",
"text": "ExclusiveFileAccessManager.java:65"
},
")\n at org.gradle.wrapper.Install.createDist(",
{
"type": "link",
"text": "Install.java:48"
},
")\n at org.gradle.wrapper.WrapperExecutor.execute(",
{
"type": "link",
"text": "WrapperExecutor.java:128"
},
")\n at org.gradle.wrapper.GradleWrapperMain.main(",
{
"type": "link",
"text": "GradleWrapperMain.java:61"
},
")\nRunning Gradle task 'assembleDebug'...\nRunning Gradle task 'assembleDebug'... Done 0,3s\n[!] Gradle threw an error while trying to update itself. Retrying the update...\nGradle task assembleDebug failed with exit code 1"
]
S
у кого нибудь такое случилось при запуске?
S
как решить эту проблему?
Tim
Всем привет! Ребят, подкиньте, пожалуйста, идей каким путем такое можно реализовать (типо лини от элемента к элементу в списке)
Roman Vasiliev
В принципе можно сделать виджет на основе стэка
Roman Diachenko
Можно попробовать Listview. Каждый Item которого будет стек с линиями и закруглениями. Четные с двумя картинками, нечестные с одной. Как-то так)
Eugene
Добрый вечер, что выбрать как дБ когда количество объектов меделенно меняется, но их значения обновляются из массы источников в реальном времени, например координаты маркера на карте. Много запросов, относительно мало изменение объема данных. Сейчас fb realtime
Tim
Там еще вот такая штука) Если ListView, то нужно будет определять положение на экране и поверх этого в стэке через positioned показывать ??
Tim
Он держит данные в мапе в оперативке и потом скидывает на диск
Tim
В общем, понятно, что просто сделать не получится, скастылить вообще на чем угодно могу (кек), но в раздумьях какой вариант оптимальнее всего
Roman Diachenko
Я бы в стек первым элементом продолжил бы кастосмный виджет который просто рисует линию с радиусам а поверх него все Остальное
Eugene
Меня как-то крайне напрягает тяжёлая Легаси жава в единоначалье
Tim
Я вот не вкапывался, если честно. почему то был уверен, что написан на чистом Дарт
Eugene
[
{
"type": "link",
"text": "https://en.m.wikipedia.org/wiki/Apache_Hive#HiveQL"
}
]
Tim
Тоже думал, но пока плохо представляю как с адаптивностью это будет ладить. Но подумаю, спасибо большое за предложение)
Tim
[
{
"type": "link",
"text": "https://pub.dev/packages/hive"
}
]
Tim
Приглядитесь к hive, если позволяет задача. Если у вас действительно быстрые операции над относительно небольшой базой, где не нужны индексы и т.п. - то, что вам нужно. Там в документации есть инструкции как в него объекты запихивать (из коробки он key-value для примитивов, вроде)
Eugene
дык в том-то и дело что речь о общедоступном ресурсе но: 1. создание новых объектов более редкие чем их параметры 2. параметры объектов онлайн из любой точки мира должны изменяться 3. возможно, подчеркну, возможно, как-то нативно хранится история изменений я бегло сейчас смотрю но мне кажется, могу ошибатся, hive это немного другое
Tim
А, так Вам сетевой ресурс нужен? Я подумал, что только для локального хранения информации
Eugene
как бы это объяснить за цикл жизни у нас появиться один объект: {x:0,y,0:z0} но его координаты за минуту могут изменится тысячу раз 0-9(на каждую координату) тобишь фактически размер изменится не значительно, но запросов таких может быть в секунду оч много.
Eugene
[
"да именно saas ",
{
"type": "link",
"text": "https://firebase.google.com/docs/database"
},
" вот думаю может какие-то альтернативы"
]
Tim
Проще ничего не будет - это точно
Tim
Только обратите внимание на прайсинги и попробуйте прикинуть сколько это будет вам стоить :)
Eugene
ну вроде да, но не понятно то ли в связи с новой дб они от него отказываются то ли нет вот и думаю может где-то солому подложить )
Eugene
Там уже отложенные очереди для этого и сохраняется не каждое состояние и не каждого объекта к сожалению и таймлапс полноценный не получится
Tim
Из альтернатив могу только предложить поднимать свой сервер и на веб-сокетах обмениваться информацией с клиентами. Возможно и есть альтернативные сервисы - в этом вопросе я, увы, профан
Eugene
можно aws поднимать и там что-то но это опять же считает кол-во запросов. Вот думаю вдруг кто придумал такую дб чтобы много запросов мелких норм и считал бы только расширение...
Roman Vasiliev
[
{
"type": "mention",
"text": "@bunopus"
}
]
Evgeny Kot
Спам против ковида!
Roman Vasiliev
спам который мы заслужили
???????
Ты когда флатер свой релизишь, у тебя именно "натив" собирается
?? Назар Калитюк
имелось ввиду dart2native, не флатер, а когда .app или .exe
???????
И чем по твоему флатер в релизе от этого отличается?
???????
Тем что расширение не exe?)
?? Назар Калитюк
при чем флатер вообще? чистый дарт, сервер например
???????
Я еще раз спрашиваю, чем, по твоему, отличается?)
Fearless Cry
флаттер это дартовая либа, собирается через дарт2натив в чём разница между не флаттером и флаттером?
?? Назар Калитюк
ну флатер ни чем, просто он писал что при запуске дарта на вм он работает быстрее чем скомпиленный. Уточнил
Fearless Cry
в некоторых кейсах может работать и быстрее
???????
Ну тоесть флатер в дебаге работает быстрее чем в релизе?
Fearless Cry
но усреднённо естественно аппа в релизе работает быстрее чем в дебаге
???????
Прошу прощения, кста, за говнистость
?? Назар Калитюк
не, ну есть же разница рендерить с хот релоадом и всеми штуками дебага, и делать запись файла из вм и без вм. Сравнение не коректное
Tim
А точно не дарт вм над нэйтив канвасом?
???????
Нет, там aot в релизе.
?? Назар Калитюк
кстати, а флатер вм разве не тащит в прод?
?? Назар Калитюк
а че такой большой тогда?
???????
dart2native собирает aot файл + очень кастрированую виртуальную машину, под названием "runtime"
???????
[
{
"type": "link",
"text": "https://t.me/rudart/188669"
}
]
???????
Что на мобилки, что на бэке
???????
Только, вроде, во флатере немного измененный дарт сдк. Но это мои домыслы.
Tim
Кек, а я был уверен, что всегда канвас и скиа там все рисует. Надо почитать что там да как
???????
Ну так они и рисуют...
???????
Тут речь именно как и во что собираются буковки кода)
???????
В байткод или машинный код)
Tim
Тогда размер приложенек объясняется неэффективным переводом в нэйтив? Для меня это был ещё один аргумент в пользу того, что там ВМ каждый раз вшивается
?? Назар Калитюк
что ты думаешь о desktop и web flutter? Получится что то?
???????
Там не полная вм, а сильно урезаная.
???????
Отвечает за взаимодействие с изолятами, типами и гарбадж коллектор
Tim
На +-10 метров? Много букаф для урезанной...
???????
Почему нет? Веб вообще на лицо прогресс за год
?? Назар Калитюк
насколько я понимаю, то нейтив вм так сказать лежит уже на устройстве, а флатеру приходится тащить свою. Та же скиа тоже вист что то
?? Назар Калитюк
работает хорошо, но лагает же жуть просто
?? Назар Калитюк
у них примерчик лагает
???????
Если нормально писать и в подходящих для этого кейсах
?? Назар Калитюк
с библиотеки
???????
Он очень криво написан. Это раз. Вчера только открывали, удивились, они явно его переписали, стал заметно быстрее
Tim
На ведре - может быть, а на других платформах - сомневаюсь
?? Назар Калитюк
[
{
"type": "link",
"text": "https://flutter.github.io/gallery/#/crane"
}
]
???????
Они завозят новый рендер и wasm Это довольно ускорит. Но сроки никто не скажет.
???????
Гораздо быстрее чем было
???????
Прям в десятки раз
?? Назар Калитюк
боюсь представить что раньше было. Или это у меня ноут лагает?
???????
У меня даже на 2к мониторе лагов почти не видно
???????
Ну и да, они рендерят во весь экран
???????
Если ограничили бы по ширине условными 720 пиксялями - былоб еще шустрее
?? Назар Калитюк
суть же еще в том, что у флатера на мобилы фишка в 60 фпс сложных анимаций и тд. А в веб наоборот, чем больше анимаций тем медленнее.
?? Назар Калитюк
понятно, что канвас работает медленно. Надеюсь у них все получиться.
?? Назар Калитюк
еще кстати заметил, что нельзя текст выделять, хотя текст вставлен как текст. Видимо перекрывает чем то.
Nikita Domnitskii
[
{
"type": "code",
"text": "SelectableText"
}
]
Tim
Там виджет специальный нужен
?
Отступ пофиксил изменив исходник Виджета, а вот это прыганье осталось
Evgenii Elchev
[
"Друзья мои андроидные, подскажите, на андроиде может быть этот параметр не 0?\nMediaQuery.",
{
"type": "italic",
"text": "of"
},
"(context).padding.bottom\nна айфоне он показывает safeArea на новых моделях.\nЕсли может, то в каких кейсах?"
]
Fearless Cry
В настройках на андроиде можно включить имитацию брови снизу В этом случае я думаю может быть не 0
Evgenii Elchev
А как это выглядит? Как загуглить?)
Fearless Cry
Display cutout
Fearless Cry
Работает с 9 и выше
M.Yu
Vsem dobrovo vremeni sutok! Dorogie uchastniki gruppa. ya oznakomilsya s dartom i Flutter, posevetuyte s chego nachat, pojaluysta
Yuriy Yurchenko
С какого-нибудь несложного pet-проекта, но желательно с доведением в Play Market, как минимум. Во время реализации - разобраться с основными шаблонами, которые обычно используются и с разницей между ними (State management, Provider, BLOC и пр). Выбрать наиболее удобный подход к локализации.
Олжас Сулеймен
только в некоторых момента
Олжас Сулеймен
на том же чистом беке минимальный размер аот выхлопа hello world 4~5 mb
Олжас Сулеймен
в вебе не только канвас замешен там и дом очень сильно используется, из за этого может и лаги, дом используется для рендеринга текста и не только, пулл канвас элементов которые постоянно вставляются и удаляются из тела страницы на каждый рендер фрейма
Tagir
как сделать, чтобы ProfileTabListView(возвращает ListView.builder) обновлялся при каждом обновлении Query?
Hateful
может кто сказать как сделать растягивающийся контейнер?Ну то есть вот есть у нас ListView, если он состоит из 3 элементов то не надо его растягивать на весь экран, если элементы на весь экран не помещаются тогда уже веди себя как ListView...Я так понимаю надо в этом случае ListView поместить в этот самый растягивающийся контейнер...надеюсь нормально объяснил -_-
Dmitriy Orteney
а разве сам по себе ListView не является таким контейнером?
Hateful
видимо все таки не так вопрос задал. Давай ситуацию конкретную дам. Есть ExpansionTile в чилдренах которого очень много элементов получается, больше 1000. Они естественно отрисовываются все сразу поэтому интерфейс начинает подлагивать, я думал было бы хорошо в чилдрены запихать что то типа ListView, чтобы если элементов много, их можно было прокручивать и они бы отрисовывались по мере надобности. Но нельзя просто так в чилдрены ExpansionTile засунуть виджет неограниченной высоты, просто ничего не отобразится...может есть какое то другое решение?Не использовать ExpansionTile а что то другое?Мне надо группировать элементы и отображать их списком только когда нажимаешь на эту группировку вообщем
Temurxon
попробуйте custom multichild layout
Temurxon
да , и cache extent задать
Dmitriy Orteney
[
"Есть такая таска и она затухла)\n",
{
"type": "link",
"text": "https://github.com/flutter/flutter/issues/39188"
},
""
]
Temurxon
а flexible не поможет?
Hateful
+. С shrinWrap'оп он все сразу отрисовывает
Hateful
но ListView он с ним конечно в чилдренах отобразит
Temurxon
я не пойму какие значение высоты ставятся для виджета который child flexible виджета
Temurxon
но подлагивание должен решить cache extent
Temurxon
можно ставить flex: 50
Hateful
пока что я склоняюсь к тому чтобы отказаться от ExpansionTile в пользу ответа вот отсюда
Hateful
[
{
"type": "link",
"text": "https://stackoverflow.com/questions/50530152/how-to-create-expandable-listview-in-flutter"
}
]
Hateful
впринципе пойдет...
Temurxon
и все же при animated container подлагивание будут
??†e???
Детский вопрос?? Можно ли начать разработку под мобильные платформы, а именно под Андроид с изучения Flutter+Dart? Или же надо пройти долгий путь через Яву или Котлин?
IB Akhrorov
Можно только через флаттер
Anton Kostyukevich
можно. но со временем вы непременно столкнетесь с тем, что и нативную разработку знать важно
Evgeny Cherkasov
[
"Вопрос по ListView:\nПосле сортировки списка - источника данных, и последующего ребилда, элементы в списке отображаются неправильно.\nНашел параметр ",
{
"type": "code",
"text": "addAutomaticKeepAlives"
},
" - это поможет?"
]
Alexander Tereshkow
Всем привет. Была ли у кого-нибудь следующая проблема с плагином camera: видео на превью и после записи рябит, независимо от установленного пресета качества? Я предполагаю, что дело в битрейте, но поменять битрейт нельзя..
Alexander Tereshkow
Причем проверил пример из коробки самого плагина - там та же проблема
Alexander Tereshkow
Сильно видна разница между нативной камерой и камерой плагина. Рябит независимо от пресета..
??†e???
Можно поподробнее, что есть Натив?
Alexander Vinogradov
Родной код для платформы
Alexander Vinogradov
Java для Android, Swift для ??
Сергей Бугай
Мне когда то ios разраб ставил тестовую сборку RN приложения на телефон, кто в курсе как?
??†e???
Кольцо замкнулось??
??†e???
[
"Dart изучать по этой книге есть смысл? Очень на веб-разработку ориентирована, а с ней я вообще никак и не хотел пока познавать:\nDart в действии \n",
{
"type": "link",
"text": "http://www.ozon.ru/context/detail/id/140213026/?from=share_android"
},
""
]
Evgenii Elchev
Да просто очень, но у него то сертификат есть, которым он подписал приложение)
Evgenii Elchev
Ну и если у тебя есть мак
Evgenii Elchev
То ставить сборки изи
Сергей Бугай
Ну не совсем, на иос 13.3.1 не ставится зараза
Сергей Бугай
Вчера пробовал и не взлетело
Evgeny Cherkasov
Этот параметр не помогает. Уточню проблему - при вставке нового элемента в середину списка, ListView показывает на позиции вставленного элемента виджет от того, который был на этой позиции перед вставкой. Где-то он кэширует элементы. Куда копать?
Сергей Бугай
Ключи добавь
Evgenii Elchev
А что говорит?
Evgeny Cherkasov
Точно, забыл что то про них. Спасибо, с ключом работает
M.Yu
BLAGODARYU ZA SOVETI!
Сергей Бугай
[
"уже не помню точно.\nделал по этому ",
{
"type": "link",
"text": "https://flutter.dev/docs/development/ios-project-migration"
},
""
]
Hateful
народ, такой вопрос. Есть форма с 2 полями для заполнения, логин и пароль, ну и кнопка входа с проверкой логина и пароля. После нажатия на кнопку входа происходит переход на другую страницу но я заметил что в последнюю секунду перед сменой экранов курсор встает на первое поле для заполнения и на секунду появляется клавиатура. Автофокус у поля выключен. Дело в button контроллере?Его отчистить надо перед переходом?
Moby Polo
Уважаемые участники, я верно понял, Hive - это простой способ запоминать данные на устройстве, то есть я могу что-то записать в hive, выключить приложение(именно выгрузив его из памяти), включить снова и прочитать их?
Сергей Бугай
[
{
"type": "bold",
"text": "dyld: Library not loaded: @rpath/Flutter.framework/Flutter\n Referenced from: /private/var/containers/Bundle/Application/E66DAF26-14D1-464D-843E-80E7CD7C9BF2/Runner.app/Runner\n Reason: no suitable image found. Did find:\n /private/var/containers/Bundle/Application/E66DAF26-14D1-464D-843E-80E7CD7C9BF2/Runner.app/Frameworks/Flutter.framework/Flutter: code signature invalid for '/private/var/containers/Bundle/Application/E66DAF26-14D1-464D-843E-80E7CD7C9BF2/Runner.app/Frameworks/Flutter.framework/Flutter'"
}
]
Evgenii Elchev
Не совсем понятно как это сочетается с RN и одним ios разработчиком)
Evgenii Elchev
Погугли ошибку)
Сергей Бугай
Он мне как то ставил без подключения к компу
Сергей Бугай
все что нагуглил так это проьблему с 13.3.1
Evgenii Elchev
Ну ты понимаешь что он его сначала собрал, а у тебя оно не собирается
Safort
Попробуй для начала официальный гайд по языку почитать. Там довольно хорошо всё описано.
Moby Polo
Благодарю за ответ!
Сергей Бугай
не совсем так, билдится оно норм, ошибка именно при запуске на телефоне
S
кто сталкивался с такой проблемой? значит, пропишу в папке pubspec.yaml пути изоброжении , потом в файле main указываю их, при запуске выдает ошибку
|