Программирование : Dart & Flutter по-русски
Sergey Miroshin
The following assertion was thrown during performLayout(): RenderFlex children have non-zero flex but incoming height constraints are unbounded.
Алексей Александрович
[
"Привет!\nкто-нибудь GetX юзает?\nкак его подружить с ",
{
"type": "code",
"text": "CupertinoTabScaffold"
},
"?\nв табах делаю биндинги, в ",
{
"type": "code",
"text": "initState"
},
" вызываю метод из контроллера ",
{
"type": "code",
"text": "Get.find ().getAll()"
},
", и он падает, потому что ",
{
"type": "code",
"text": "null not contain getAll()"
},
""
]
Alexey Z
Ясн, значит выше чёт ещё, тогда поможет LayoutBuilder и SizedBox для текста
Sergey Miroshin
Выше Column и Padding
Alexey Z
Наверно, нужен весь код
Sergey Miroshin
Сейчас попробую
Alexey Z
и зачем row если в нем один элемент?
Andreu
вы мое решение пробовали?
Sergey Miroshin
Сейчас попробую
Alexey Z
И если есть column то поверх него надо а не row, и row убрать если планируется только один элемент
Sergey Miroshin
Сейчас скину )
Sergey Miroshin
[
{
"type": "link",
"text": "https://pastebin.com/VZpfiBn5"
},
"\nСам виджет с текстом\n\n",
{
"type": "link",
"text": "https://pastebin.com/0tZTCJyY"
},
"\nТам где он используется"
]
Andreu
к слову, я убрал Row и все окей даже в первоначальном варианте)
Andrew Ka
[
{
"type": "link",
"text": "https://youtu.be/QNXWm6XCj_o"
}
]
Олжас Сулеймен
[
"а есть у кого на примете репы с настроенным с++",
{
"type": "bot_command",
"text": "/cmake"
},
""
]
Pavel Pimenov
[
"Кто хочет автоимпорт и дополнение extension-функций, поддержите\n",
{
"type": "link",
"text": "https://github.com/dart-lang/sdk/issues/38894"
},
""
]
Семён undefined
о, да, полезно
Семён undefined
но проще конечно будет импортировать сразу с виджетами
Pavel Pimenov
Что значит с виджетами? ??
Семён undefined
знаешь про export?
Pavel Pimenov
Но всё равно возможна ситуация, когда нужен экстеншн, а кроме него ничего не нужно
Pavel Pimenov
И тогда придётся импортировать вручную
Семён undefined
а какая разница, что нужно или не нужно?
Семён undefined
ты когда материал импортируешь, тоже много чего ненужного с собой захватываешь
Семён undefined
но это ни на что не влияет
Nikita Domnitskii
лол, а как экспорт тут поможет?
Pavel Pimenov
Ты имеешь в виду сделать один файл на весь проект, где будет export всего-всего?
Pavel Pimenov
И импортировать его?
Семён undefined
да нет же
Pavel Pimenov
Звучит не очень архитектурно
Andreu
Ну прям все все нет, но лично я делал директорию extensions где был extensions.dart и экспортами остальных файлов этой директории
Pavel Pimenov
Может быть такая структура проекта, что экстеншены размазаны по разным папкам
Nikita Domnitskii
да, только все ваши экспорты нужно импортить руками перед тем как можно будет использовать экстеншены
Дмитрий Щербаков
наоборот збс. вот например у тебя в приложении 100500 bloc'ов, ты в каждой папке блока создаешь экспортный файл который экспортирует блок, евент и стейт файлы, а на верхнем уровне экспортируешь все эти файлы. И потом импортировав 1 файл получаешь доступ ко всем, а не пишешь 100500 импортов
Pavel Pimenov
Ну это бывает удобно и правильно, да
Pavel Pimenov
Но не отменяет возможность автоимпорта эктеншенов
Дмитрий Щербаков
так же с экранами/ моделями можно
Pavel Pimenov
Это как бы перпендикулярные вещи
Pavel Pimenov
Одно другому не противоречит
Pavel Pimenov
Сейчас же существует автоимпорт классов и функций верхнего уровня? Когда начинаешь писать название класса/функции
Pavel Pimenov
Это никак не мешает экспортировать несколько файлов через один
Дмитрий Щербаков
ну кому как удобнее)
Van Xemidov
Хэй, народ, кто кодит на маке, есть пара вопросов!
Van Xemidov
[
"после запуска консоли, надо постоянно прописывать \" export PATH=\"",
{
"type": "cashtag",
"text": "$PATH"
},
":`pwd`/flutter/bin\"\n\""
]
Van Xemidov
я пробывал прописать путь, что бы постоянно не прописывать его, но ничего не вышло
Van Xemidov
у меня банально нет этого файла(".bashrc")
Andreu
И ты уверен, что у тебя баш?
Nikita Domnitskii
pwd выводит текущую директорию
Nikita Domnitskii
в туториале по установке так потому что там уже в директории с флаттером
Van Xemidov
и что сделать ?
Nikita Domnitskii
путь нормальный пропиши
????? ILyos >
как можно сделать такой виджет который при нажатия кнопки появлявшийся? я вызываю эту функцию но он не появляется переди плейера
Hellomik
попробуй overlay
????? ILyos >
column засунут в него?
Andreu
вот что в баше обычно находится
Hellomik
так не работает это вызов функции
Nikita Domnitskii
как там в 2006?
Hellomik
ты вызываешь функцию которая работает с context
????? ILyos >
его надо вызвать с помощью overlay?
Hellomik
google решит твою проблему за 5 секунд
Hellomik
[
{
"type": "link",
"text": "https://www.google.com/search?client=safari&rls=en&q=overlay+flutter&ie=UTF-8&oe=UTF-8"
}
]
Hellomik
[
{
"type": "link",
"text": "https://medium.com/saugo360/https-medium-com-saugo360-flutter-using-overlay-to-display-floating-widgets-2e6d0e8decb9"
}
]
Пашка
нужно запушить экран так что бы не было back button но при том у него должна быть возможность вызвать pop()
Kirill Aparin
Ставь leading пустой
Andreu
в чем проблема просто исправить в AppBar leading?
Daniil Kolyasnikov
autolmplementLeading : false нужно в аппбаре установить
Пашка
в другом месте тоже пушу на этот экран и там нужна это кнопка
Andreu
единственное, что будет работать на ios жест и кнопка назад тоже работать будет
Andreu
ну добавь в атрибуты экрана булевую
Пашка
так я добавлю, но жест же останется
Andreu
решит все вышеописанные мною проблемы
prz
господа. делаю post в ответ на него прилетал один элемент по API из php в виде echo. Сейчас же появилась нужда получить в ответ json и каждый элемент данных засадить в отдельную переменную. Это как-то реализуется локально прямо в future?
prz
а это json с ответом [{"sip_url":"testsip","sip_password":"123"}]
prz
нужно Данные из sip_url и из sip_password вывести в переменные
oc1 kent
Друзья, а среди нас есть архитекторы систем на flutter? мне нужен совет относительно проекта (вопросы больше по websocket). $ отпишитесь плиз в лс кто шарит
Vyacheslav
если правильно, то сделай модель данных, которую потом из responce.body из джисона собираешь
tdesc
накиньте конкретно, в целом ничем не отличаются сокеты
oc1 kent
Я не эксперт во флаттере, но коленках сделал дизайн, у меня данные получаются по rest api. а модифицировать я хочу их по websocket, я не могу правильно связать модели, нужна консультация + понять как правильно сейчас жить через Provider прокидывать данные и модифицировать их или же по старинке Builder
prz
вообще не облегчил задачу нубу ))
Andrew Ka
Вам нужна Hasura. Я уже сколько раз про неё рассказывал на стримах ??
Vyacheslav
[
{
"type": "link",
"text": "https://flutter.dev/docs/development/data-and-backend/json"
},
"\nтут все показано с примерами, посмотри. Как раз твой случай"
]
prz
верю,что есть какой-то простой путь без написания кучи классов
prz
че-нить по аналогии с php: $data = file_get_contents("php://input"); $res = json_decode($data); $acc = $res->account; $niqid = $res->useruniqid;
Vyacheslav
это самый простой путь, с написанием класса )) все что проще по этому вопросу тут иногда называют говнокодом
Andrew Ka
[
"Вот, например. Там есть говорильня про hasura ",
{
"type": "link",
"text": "https://youtu.be/WflFGC0OD38"
},
""
]
vasilich
В любой не понятной ситуации пользуйтесь Хасура
vasilich
А что за дизайн такой что гет по ресту а пут по вебслкету?
Vyacheslav
[
"у тебя в теле ответа 3 параметра, то есть уже модель данных. Делаешь модель и потом работаешь с ней\nКонечно можно напрямую. Твой ответ - это Map \nЗначит можешь получить доступ к переменной account так:\n",
{
"type": "pre",
"text": " final acount = responce.body['account'];",
"language": ""
},
""
]
tdesc
по ресту данные грузим, по сокетам реалтайм обновления. задача отлично ложится на хороший стейт менеджер. мы ее решаем build_redux и изолятом по проектированию самого бизнес домена, надо знать специфику
prz
я возвращаю из API не те данные,что передаю в body
prz
в боди я передаю через post Данные для проверки прав аккаунта
prz
если ок - отправляю пачку данных в ответ
Vyacheslav
получи ответ, сделай jsonDecode из него и вытащи нужную тебе переменную, как я писал выше
Vyacheslav
может я что-то не понял в вопросе
Дмитрий
Товарищи! Требуется возможность задонатить а вприложении разными способами: картой, google pay, apple pay, in_app_purchase подойдет для оплаты картой?
neikist
Если задонатить - то вроде как картой нельзя в сторах. Сторы процент хотят. Соответственно только google pay и apple pay по идее.
Дмитрий
ну имеюю виду типа кнопка помочь проекту и способы оплаты не только google И apple но еще с формой заполенния карты
neikist
Ну вот и я про это. Приложения за такое банят, гугл с яблоком по 30% хотят.
neikist
У гугла вроде как еще может повезти и проскочишь, но не факт.
Dmitry Molchanov
ну вообще эпл и гугл за такое фортнайт удалили только что, так что только рефералку на сторонний сайт делать
neikist
Слышал что банят если даже возможности донатить нет в приложении, но есть ссылка на сайт и возможность донатить там
Artem Tkachenko
[
"apple pay\n",
{
"type": "link",
"text": "https://developer.apple.com/apple-pay/nonprofits/"
}
]
Artem Tkachenko
вообще IAP существует для подписки и продажи чего то виртуального, там даже реальный товар нельзя продавать
Григорий Коваленко
банят даже если пишешь что на сайте плОтить дешевле
Дмитрий
Принято, спасибо ребят
neikist
nonprofit organization это не то насколько я понимаю. Это не донаты физ лицам за разработку приложения. Хотя могу и ошибаться
prz
Я попытался сделать по примеру: Serializing JSON inline
Семён undefined
как отловить pop, в том числе и от системной кнопки?
Паша
[
{
"type": "link",
"text": "https://stackoverflow.com/questions/50452710/catch-android-back-button-event-on-flutter"
}
]
Паша
[
{
"type": "link",
"text": "https://api.flutter.dev/flutter/widgets/WillPopScope-class.html"
}
]
Паша
нагуглить за 30 секунд
Roman Cinis
В Align top start обернуть контейнер у которого в декорации будет кастомный border radius circular только на bottom end
Dmitrii Isupov
[
"Всем привет, как сделать,чтобы каждая иконка была серого цвета?",
{
"type": "link",
"text": "https://pastebin.com/mueEu66D"
},
""
]
Dmitrii Isupov
Заранее спасибо
vasilich
Сделать серым ассет?
Семён undefined
кто-нибудь реализовывал динамическую смену основного цвета приложения? как в телеграм, к примеру
Constantine
[
{
"type": "link",
"text": "https://flutter.dev/docs/cookbook/design/themes"
}
]
Семён undefined
у меня смена темы через themeMode производится
vasilich
Допустим) В чем вопрос то?
Gorohov Valeriy
[
"GetX позволяет удобно менять\n",
{
"type": "link",
"text": "https://pub.dev/packages/get"
},
""
]
Семён undefined
я его и использую, но мне нужно, чтобы работало вместе с themeMode
Марк
Flutter пишет "Android SDK file not found", папку с sdk в конфиге настроил, все пакеты есть, из-за чего еще может быть?
L
Я делал без всяких плагинов
Семён undefined
ну и как?
L
[
"В класс App добавил \n\n",
{
"type": "pre",
"text": "void rebuildAllChildren(BuildContext context) {\n void rebuild(Element el) {\n el.markNeedsBuild();\n el.visitChildren(rebuild);\n }\n\n (context as Element).visitChildren(rebuild);\n }",
"language": ""
},
"\n\nЗатем в билдере юзаю ValueListenableBuilder и Hivedb, чтобы при изменении ключа менять тему и вызывать rebuildAllChildren\n\nи беру из системных настроек через final brightness = SchedulerBinding.instance.window.platformBrightness;"
]
Семён undefined
эээ, ладно, спасибо
L
Затем добавил несколько проверок изменения системной темы в виджеты чтобы автоматом менялось
Семён undefined
лучше тогда сделаю без themeMode
Дмитрий Щербаков
Самое простое менять тему через Provider
L
Я не смог понять как его к CupertinoApp прикрутить
vasilich
Тему достаточно в одном месте менять
Roman Proshak
Здравствуйте, вопрос по GetX. Чем GetView отличается от GetWidget и в чем преимущество использования вместо StatelesWidget?
Марк
Уже несколько дней пытаюсь понять, ничего не помогает
Alexander PhatoM
Может кто подсказать, почему картинка занимает в ширину 32, а в высоту пропорционально своего размера
Alexander PhatoM
но если ее вставить row или column рядом с container(w: 32, h: 32), то она ужимается как надо
Gorohov Valeriy
Что окружает контейнер?
Gorohov Valeriy
[
"Я попробовал такую-же верстку в дартпад. Всё ок\n",
{
"type": "pre",
"text": "Container(\n width: 200,\n height: 200,\n child: GestureDetector(\n child: ClipRRect(\n borderRadius: BorderRadius.circular(15),\n child: AspectRatio(\n aspectRatio: 1,\n child: Image.network(\n 'https://w.wallhaven.cc/full/vg/wallhaven-vgwmo8.jpg',\n width: 200,\n height: 200,\n fit: BoxFit.cover,\n ),\n ),\n ),\n ),\n);",
"language": ""
},
""
]
Alexander PhatoM
Контейнер с большим размером, обернул в align. Видимо он не понимал, где он там должен быть
Gorohov Valeriy
Еще у тебя лишний код, AspectRatio и размеры в самом image лишние, т.к. изображение итак ограничено Container(w:32, h:32)
Alexander PhatoM
Это я пытался решить проблему)
Tim
А как называется маленький попап, который всплывает в TextInput? Где еще кнопки Выделить/Вставить/Копировать.
Tim
А никогда не приходилось делать кастомную такую штуку?
vasilich
Определитесь) Вы интересуетесь как называется семейство юай компонентов или тот вот конкретный виджет с кнопками копи/пэйст
Tim
[
"Мне нужно для обычного Text (точнее, ",
{
"type": "link",
"text": "Text.rich"
},
" с textSpans) сделать похожую вещь, чтобы выводить подсказки в тексте"
]
Tim
Буду рад любой информации, никогда с подобным не сталкивался еще
vasilich
[
{
"type": "link",
"text": "https://stackoverflow.com/questions/58352828/flutter-design-instagram-like-balloons-tooltip-widget"
}
]
vasilich
С пивком покатит?
Tim
Меня пока хватает, чтобы руками определять координаты и просто показывать поверх всего остального в стэке
Tim
Нет нет, саму такую форму сделать не проблема, вопрос как это грамотнее показать :)
Tim
Вариант вполне рабочий, но может можно как то попроще. Или вообще есть готовые инструменты, о которых пока не знаю
vasilich
Та уже не актуально)
Andrew Ka
А как оно в бою (GetX) - это боль или радость? ??
vasilich
Надо видос запилить, я считаю)
Gorohov Valeriy
Я его использую для контекстно-независимого DI, мне норм.
Andrew Ka
Увидел Get.snackbar() и заплакал ??
Gorohov Valeriy
Из-за чего?
vasilich
Эх! Во время стрима надо было) Донатов бы прилетело, эмоции любят)
Andrew Ka
Стандартный требует контекста Scaffold и уже достал ??
Gorohov Valeriy
Можешь попробовать bot_toast, более гибкий
vasilich
А думаете этот без контекста обходится ;-)
Andrew Ka
Я прошёл мимо GetX, т.к. испугался "сборной солянки". Там всего помаленьку. А сейчас смотрю на функционал, и я его хочу ??
Gorohov Valeriy
bot_toast это для снеков, тостов и диалогов, не требует передачи контекста (берёт текущий) и достаточно симпатичный. Я использую и GetX для DI и bot_toast для снеков
Andrew Ka
Ну вот он тоже слишком много всего умеет. А меня это пугает. Если автор откажется дальше поддерживать, то всё это счастье ляжет на наши плечи. ??
Gorohov Valeriy
Мне не привыкать форки пакетов делать)
vasilich
А что если флаттер перестанут поддерживать? А что если форкнуть и починить?
vasilich
Кстати флаттер в багах как решето и ничего, юзают :-)
Andrew Ka
Ну да. Я влюбился в китайское творчество FlutterCandies, но скоро уже буду знать кишки лучше авторов. ??
Artem
Всем привет. Подскажите, пожалуйста, flutter ограничен дизайном material или можно нарисовать свой и сверстать его?
Джабраил Караев
Нет, все как везде, есть спрайты которые можно стилизовать и анимировать
Artem
А где почитать подробнее можно? В доке не увидел просто, может конечно не там смотрел
Andrew Ka
BoxDecoration и вперёд на танки ??
Джабраил Караев
В оф доке все есть
Джабраил Караев
Главное с BloC разобраться, а стили уже просто
les forest
Главное провайдер освоить
Фотех Камолов
Доброе утро, подскажите пожалуйста как сделать чтоб текст который не уместилось спускалась вниз ?
Игорь
overflow: TextOverflow.ellipsis
Фотех Камолов
Не получается
Игорь
Можете код показать?
Фотех Камолов
Чёт не понимаю как сделать
Игорь
Попробуйте добавить maxLines: {число строк}
|