Программирование : Dart & Flutter по-русски
Анатолий
Там есть отдельно горизонтальные евенты и вертикальные
Анатолий
+ ты можешь делать действие во время свайпа а не в конце, херак и магия
ironpotter
Ребзя посдкажите как сделать чтобы DropdownMenuItem, открывался всегда под DropdownButton, а не взависимости от элемента
First Last
Мне лень вам объяснять Ладно
Анатолий
Ну тогда довольствуйся теми ответами что есть ??
Анатолий
Кстати, ты можешь сделать такой виджет
Анатолий
И выкинуть его в паб
First Last
У меня и так куча работы из флаттера
First Last
Быстрая разработка говорили они
First Last
Единственное что порадовало - нативщина довольно удобная
Анатолий
Ты ж все равно будешь делать свайпф
First Last
Я 100% буду делать drag drop с сохранением в другой виджет
First Last
А свайп мне нужен был для менюшки Но я ее, видимо, вынесу к чертям и сделаю через dropdown
Igor Filippov
Нет, это вообще не с текстом как таковым связано
First Last
Дочерний элемент не должен иметь возможность выходить за границы родительского
First Last
Мне лень читать такую простыню
First Last
[
{
"type": "mention",
"text": "@tdesc"
},
" чуэш"
]
First Last
[
"А как в дарте делается декомпозиция компонентов (аналог контейнера/компонента в реакте)?\nК примеру, есть ",
{
"type": "code",
"text": "header"
},
" компонент, который возвращает ",
{
"type": "code",
"text": "AppBar"
},
" и засовывает `title`и остальные переданные аргументы\nИспользую в контейнерах, например: главная страница\n\n",
{
"type": "pre",
"text": "return Scaffold(appBar: MyHeader(...))",
"language": ""
},
""
]
First Last
Вот как дальше быть? Делать наследование от Виджета (для хедера) и вызывать MyHeader(...).build(context) или есть что-то получше?
Alexey Perelygin
Просто экземпляр хеадера пепедать
Alexey Perelygin
Билд он сам вызовет
Alexey Perelygin
Полный код тогда хотелось бы увидеть
Igor Filippov
Тогда нефиг спрашивать как это, если прочесть не в состоянии
Alexey Perelygin
Ну и что не понятно в сообщении?
Alexey Perelygin
В аппбар нужен prefferedsizewidget
First Last
Мне все понятно
First Last
[
"Мне нужно напрямую вызывать ",
{
"type": "code",
"text": "build\n"
},
"И собсна, вопрос, как у вас во флаттере делается декомпозиция (Если я не правильно делаю)"
]
admin
[
"Помогите, мне всю консольку заспамило вот такими сообщениями:\n",
{
"type": "pre",
"text": "Failed to send request: {\"jsonrpc\":\"2.0\",\"id\":\"1730\",\"method\":\"getVM\",\"params\":{}}",
"language": ""
},
"\nМеняется только параметр id, что оно от меня хочет?"
]
Evgen
error: 'SplashScreen.createState' ('() > dynamic') isn't a valid override of 'StatefulWidget.createState' ('() > State '). (invalid_override at [app] lib/screens/splash.dart:7)
Evgen
[
"class SplashScreen extends StatefulWidget {\n ",
{
"type": "mention",
"text": "@override"
},
"\n _SplashScreenState createState() => _SplashScreenState();\n}"
]
First Last
[
{
"type": "link",
"text": "https://docs.flutter.io/flutter/widgets/StatefulWidget-class.html"
},
"\n\nГглянь на первый пример"
]
Evgen
хм переписал пропала ошибка
Evgen
как делать полный резет?
Evgen
перезапустил студию все заработало как надо
Serge P
File -> invalidate cashes & restart
Evgen
[
"почему вместо ",
{
"type": "link",
"text": "Icons.shop"
},
" выводится вопрос??"
]
Evgen
каким методом адекватно редиректнуть юзера на хоум скрин после лоадинга?
admin
Может лучше оф туториал прочитать вместо задавания вопросов на каждый чих?
Evgen
спасибо, буду рад и релевантной ссылке
admin
в C/C++ есть (void *), о какой стат-типизации мы можем говорить?
admin
По каким критериям надо выбирать задачи в контексте dart? Чем текущая задача несоответствует выбору дарта?
admin
[
{
"type": "link",
"text": "https://flutter.io/docs/cookbook/navigation/navigation-basics"
}
]
First Last
Я могу как-то прочесть файлики из директории которая находится на уровень выше приложения? ??
Evgen
как раз это до вопроса и читал, но словил баг что возвращает на лоадинг скрин после 2-ого перехода
admin
есть метод pushreplacement
Evgen
[
"комрад ",
{
"type": "mention",
"text": "@DVSstudio"
},
" поделился кодом работающим \nvoid _redirectToPage(BuildContext context, Widget page) {\n WidgetsBinding.instance.addPostFrameCallback((_) {\n MaterialPageRoute newRoute = MaterialPageRoute(builder: (BuildContext context) => page);\n\n Navigator.of(context).pushAndRemoveUntil(newRoute, ModalRoute.withName('",
{
"type": "bot_command",
"text": "/decision"
},
"'));\n });\n }"
]
admin
А еще есть метод pushreplacement
admin
А этот код скорее для bloc
DVS (Read The F.ng Manual) Studio (NoHello)
да, но логично делать переход только когда всё сбилдилось, иначе матерится
Maria
Кто-то с похожим кодом жаловался недавно на то, что навигация много раз срабатывает
admin
Там проблема была не в этом куске кода
admin
А в кривом управлении стейтом и событиями
First Last
Юзал кто FlutterDownloader?
First Last
Чета ваще капец :(
Serge P
Да, работает замечательно
First Last
Да, я уже понял...
Serge P
Какие то проблемы возникли?
First Last
Загрузку "починил" (Сейчас бы без интернета сидеть и думать, че оно не скачивает, мде) Осталось разобраться с папками...
j k
[
"flutter, знаю что в нем ",
{
"type": "code",
"text": "dart:mirrors"
},
" недоступны\nесть респонс от сервака ",
{
"type": "code",
"text": "{ data: T }"
},
"\nв поле ",
{
"type": "code",
"text": "data"
},
" будут разного типа данные, ",
{
"type": "code",
"text": "T"
},
" - дженерик.\nесть класс, в котором метод принимает дженерик ",
{
"type": "code",
"text": "T"
},
" и нужно возвратить ",
{
"type": "code",
"text": "APIResponse "
},
", внутри ",
{
"type": "code",
"text": "APIResponse"
},
" есть свойство ",
{
"type": "code",
"text": "data"
},
" и ",
{
"type": "code",
"text": "data"
},
" должен скастится до ",
{
"type": "code",
"text": "T"
},
". \nюзаю ",
{
"type": "code",
"text": "json_serializable"
},
" и хочется как-то так ",
{
"type": "code",
"text": "T.fromJSON(response.data)"
},
"\nреспонс ",
{
"type": "code",
"text": "data: { id: 1 }"
},
", а скастится так ",
{
"type": "code",
"text": "APIResponse"
},
" -> ",
{
"type": "code",
"text": "T"
},
" -> ",
{
"type": "code",
"text": "Identifier"
},
"\n",
{
"type": "code",
"text": "Identifier"
},
"\n",
{
"type": "pre",
"text": "class Identifier { final int id; }",
"language": ""
},
""
]
j k
[
"выйдет так ",
{
"type": "code",
"text": "apiResponse.data.id"
},
""
]
admin
[
{
"type": "link",
"text": "https://youtu.be/Mz3kHQxBjGg"
}
]
admin
Все время хочется прочитать как Silvers
Макс Зубко
Как избавиться от этого?
Макс Зубко
Bottom Overflowed
Антон
Это только в дебаге
Антон
Но вообще да, проблемы с верствкой
Макс Зубко
ListView.builder - сюда завернуть ?
DVS (Read The F.ng Manual) Studio (NoHello)
SingleChildScrollView
Макс Зубко
Вот это верней
admin
Забавно что проект называется list view
Макс Зубко
А container не удалять ?
Макс Зубко
Спасибо большое, помогло)
Анатолий
А еще можно было уменьшить контент на 1 пиксель
Анатолий
тоже сработало бы
Макс Зубко
А как можно сделать апк файл ?
Макс Зубко
как ковертировать ?
Михаил
На другом девайсе это мог быть уже не 1 пиксель
Анатолий
если высота фиксированная то проблем не было бы
Анатолий
а то что он уходит за экран когда клавиатура появляется это нормально
Анатолий
ну если высота фиксированная в пикселях а не пропорциональная то норм будет
Анатолий
при условии что выставил
Анатолий
хотя на других расширениях в любом случае придется тестировать все это
admin
ещё не проверял, на flutter есть поддержка прогрессивной загрузки изображений?
Alex Adrianov
Народ, никто не находил API для взаимодействия с носимыми устройствами, аля MiBand/AppleWatch
First Last
[
{
"type": "link",
"text": "https://github.com/flutter/flutter/issues/15288"
}
]
First Last
Готовую вещь не от flutter team я не видел
invariance
И ты здесь, омг
First Last
Ты думаешь кто его на дарт затащил? ??
invariance
требования бизнеса
First Last
[
{
"type": "mention",
"text": "@invariance"
},
" \nФирст aka бизнес\nЗвучит\n??"
]
invariance
[
"@all я правильно понимаю, что ",
{
"type": "code",
"text": "Stack"
},
" нужен для набора элементов, которые надо позиционировать определенным образом (",
{
"type": "code",
"text": "Positioned"
},
")?"
]
invariance
А, ну да... В доке же так и написано.
First Last
[
"Насчет ",
{
"type": "code",
"text": "flutter_downloader "
},
"\nМожет кто мне объяснить как там с папочками работать? ??\n\nГлянул в ",
{
"type": "code",
"text": "example"
},
", забацал как там ",
{
"type": "code",
"text": "getExternalStorageDirectory"
},
" (path_provider) + свое название и проверку на exists директории\nЕстесена указываю в ",
{
"type": "code",
"text": "enqueue"
},
" методе ",
{
"type": "code",
"text": "saveDir"
},
" как ",
{
"type": "code",
"text": " getExternalStorageDirectory"
},
" + свое название, но скачивает все равно в ",
{
"type": "code",
"text": "savedDir: /storage/emulated/0"
},
""
]
Александр Васильев
Подскажите как лучше сделать консольную утилиту на Dart для авторизации на сайте и последующего его парсинга.
First Last
Не понимаю вопроса
Александр Васильев
POST логин пароль. GET страничку с авторизацией
Artyom Nesterenko
[
"Подходит? ",
{
"type": "link",
"text": "https://pub.dartlang.org/packages/html"
},
""
]
Александр Васильев
А HTTP который?
Александр Васильев
Я непонимаю в чем между ними отличие... Помимо того что html это парсинг HTML DOM
Александр Васильев
?? спасибо
Александр Васильев
то что надо так как у меня куки нужно передавать
Ernest Stanbekov
void saveAuthToken (String authToken) async { SharedPreferences prefs = await SharedPreferences.getInstance(); prefs.setString('auth_token', authToken); } getAuthToken () async { SharedPreferences prefs = await SharedPreferences.getInstance(); var authToken = prefs.getString('auth_token'); return authToken; } почему метод getAuthToken возвращает Instance of 'Future' вместо текста, который я ожидаю получить?
admin
потому что getAuthToken тоже нужно с await вызывать
admin
ну и сейчас бы токены не в защищенных хранилищах сохранять
Ernest Stanbekov
а что предлагаете?
admin
[
{
"type": "link",
"text": "https://pub.dartlang.org/packages/flutter_secure_storage"
}
]
Ernest Stanbekov
спасибо за подсказку
Ernest Stanbekov
спасибо, получилось. но буду копать в сторону secure storage
invariance
Почему контейнер в другом контейнере не хочет свою высоту менять? Ставит онли высоту контейнера-родителя
invariance
SizedBox такое же поведение
invariance
[
"Нашел в чем проблема. ",
{
"type": "link",
"text": "https://github.com/flutter/flutter/issues/18399#issuecomment-396710507"
},
""
]
Anton Anokhin
[
"не по теме вопросы будут удаляться. ",
{
"type": "mention_name",
"text": "Alex",
"user_id": 577078475
},
" ",
{
"type": "mention_name",
"text": "Kateryna",
"user_id": 474080318
},
" предупреждение"
]
Анатолий
Наступили смутные времена
Оганнес Асатрян
видел такое
Оганнес Асатрян
лейаут неправильно сделал?
Михаил
это называется developer friendly framework
Оганнес Асатрян
лол. да)) тихо в логи посрет ошибку и все
Оганнес Асатрян
типа. чувак. у тебя тут траблы. но я тебе не буду крашить апку и портянку лога красным цветом
admin
ну наверное потому что это дебаг режим?
Оганнес Асатрян
а я вот хз че будет в релизном.
Григорий Иванько
[
"это я ListView встроил внутрь ",
{
"type": "pre",
"text": " children: [",
"language": ""
},
""
]
Михаил
не, вот это уже было бы плохо) тип в дебаге в логи напишет, а в релизе крашнется?)
invariance
[
"Ммм, а почему ",
{
"type": "code",
"text": "Colors"
},
" себя странно ведет? Только половина цветов работает оттуда"
]
Evgeny Kot
[
{
"type": "mention",
"text": "@Frommiass"
},
" давай без мата."
]
Григорий Иванько
ок, сорри
First Last
Ты про несовместимость типов?
First Last
[
"И для какого виджета ты юзаешь ",
{
"type": "code",
"text": "Colors"
},
"? (и какой? Material или просто Color?)"
]
invariance
ну судя по всему можно юзать только Material цвета, а Material ascent нельзя?
First Last
[
"Он хочет именно C",
{
"type": "code",
"text": "olor"
},
""
]
invariance
так то никаких ошибок не выводится, просто цвет прозрачный ставится
First Last
А цвет какой задаешь?
First Last
Может быть проблема не в цвете?
invariance
Именно в цвете
invariance
[
{
"type": "link",
"text": "Colors.black"
},
" ставит норм, а какой-нибудь Colors.white12 прозрачный"
]
invariance
чет тупо как то сделано, почему мне нельзя юзать все цвета о_о
Анатолий
может он сливается с фоновым?
Анатолий
ты можешь хекс указать
First Last
[
{
"type": "link",
"text": "https://docs.flutter.io/flutter/dart-ui/Color-class.html"
}
]
Анатолий
есть Color конструктор
First Last
Глянь на example
invariance
а все, починил
invariance
да просто в студии цвета неправильно показываются в палитре
invariance
и по итогу темно-серый цвет является почти белым
invariance
Colors.black26 вот этот например люто черный в студии, но в эмуле ближе к белому
First Last
В vs code все отлично в этом плане
Михаил
это по идее черный с 26 процентами opacity
Михаил
он и должен быть ближе в белому)
Игорь Кравченко
привет, а подскажите какой best practies для state managment во flutter?
invariance
что ты под этим подразумеваешь?
First Last
[
"Redux, bloc, etc\n",
{
"type": "mention",
"text": "@gorniv"
},
" тебе"
]
First Last
Учитывая ангулар - глянь на bloc, там rx из коробки
First Last
[
{
"type": "link",
"text": "https://flutter.io/docs/development/data-and-backend/state-mgmt"
}
]
invariance
Я чего то не понимаю походу. Во флаттере же из коробки управление состоянием норм
invariance
реактивные компоненты и все такое
First Last
Сложно объяснить человеку который не юзал что-то похожее(
invariance
ну да, и про state классы
admin
Ну это не норм когда у тебя данные загружаются в одном месте а показывать и обновлять их нужно в множестве компонентов
invariance
разве виджеты не сами стейт обновляют по необходимости?
Оганнес Асатрян
ты сам вызываешь setState
invariance
я не про установку
invariance
установил стейт - другие компоненты его стянули
invariance
перерендерелись
First Last
Вопрос в прокидывание этого стейта
First Last
Или ты достанешь из глобального или тебе нужно будет каждому компоненту прокидывать этот стейт, еще миллион проблем и т.п
First Last
Но зачастую глобальный стейт - бесполезный Люди его тянут просто потому что
Игорь Кравченко
setState для компонента понятен, но как например управлять состоянием авторизации пользователя и прокидывать это состояние в компоненты?
Игорь Кравченко
[
"пока по курсу который я смотрел мне хорошо зашел ",
{
"type": "link",
"text": "https://pub.dartlang.org/packages/scoped_model"
},
" , но в целом интересно кто что может сказать"
]
First Last
[
"Можно ведь так же с помощью ",
{
"type": "code",
"text": "setState"
},
""
]
First Last
Вопрос в удобстве
First Last
Это создано для общения между UI и моделью
First Last
Т.е, это не совсем про глобальный стейт
First Last
Это то, на чем базируется Qt и Qml (если я правильно понял)
First Last
Model <-> notify <-> UI
Игорь Кравченко
ну в целом да, в целом еще обычно все для того же используют redux- но я его как-то не особо люблю
Оганнес Асатрян
MVP рулит
Artyom Nesterenko
То есть тот же Redux типа охватывает больше юзкейсов?
Игорь Кравченко
MVP от MVVM в целом отличается тонкостями реализации обновления
|