Программирование : Dart & Flutter по-русски
Виталя
У меня просто есть страница с просмотром конкретного профиля, грубо говоря есть друзья и я зашел на профиль друга Но логически страница с профилем не подходит ни к одной из 4-х страниц в меню
Виталя
А не показывать bottomBar тоже не хочу
Evgenii Elchev
это неправильный флоу
Пашка
напиши свой там бар
Evgenii Elchev
либо твоя страница поверх таб бара показывается
Evgenii Elchev
либо внутри одной из вкладок и тогда эта вкладка выделена
Evgenii Elchev
это не только в вк
Evgenii Elchev
ну это понятно, но зачем делать неправильно?
Виталя
Потому-что времени переосмыслять все это нет )
Виталя
Надо посто сделать, если это возможно Если нет, просто кину выделение на первый таб
Madi
Я создал виджет, внутри которого есть textfield. Как мне пробросить текст вверх по дереву виджетов?
Дмитрий Щербаков
Просто меняй цвет активного таба
Дмитрий Щербаков
На неактивный
Виталя
Немного не понял про пейджвью Я когда создаю BottomNavigationBar он просит кинуть ему currentIndex Если кину null или какое-то левое число, то ошибка
Дмитрий Щербаков
Если костылить то по взрослому ??
Дмитрий Щербаков
7 красных линий прозрачного цвета перпендикулярно друг другу )
Evgenii Elchev
надо его слать куда то туда))
Evgenii Elchev
заказчики которые не заставляют делать странную дичь платят на порядок больше
Evgenii Elchev
ну, раз нет так нет)
Evgenii Elchev
последний раз я работал с клиентом который просил меня что то делать, если я говорил что это плохое решение в 2013 году)
Evgenii Elchev
скоро 10 лет будет как я завязал с этой историей)
Виталя
Иногда надо сделать быстро и чтоб работало
Evgenii Elchev
обычно заказчик хочет продукт который будет хорошо работать, обращается для этого к профессионалу, платит деньги. а выделена там вкладка или нет его слабо волнует. если конечно это не мамкин стартапер который взял кредит, что бы заплатить исполнителю и почему то думает что просто богоподобный ux инженер
Evgenii Elchev
быстро и что бы работало это как раз показать экран поверх таббара, одна строка
Виталя
Ну вот надо чтоб табар был
Evgenii Elchev
нет ничего быстрее чем юзать стандартные решения
Evgenii Elchev
ну это уже не «быстро и что бы работало» это как раз «странное, неправильное решение, которое еще и времени на реализацию требует»
m_Rassska
попробовал собрать простенький проект на flutter с таким девайсом, залагал, в итоге через 2 часа ничего не получил... Это реально очень слабо?
m_Rassska
Есть какие-то резонные методы оптимизации?
SlavikG
макбук аир 2015 все хорошо
m_Rassska
да я рил по минимуму нагружаю проц, пишу на виме, но сборка очень-очень медленно происходит...
whoamins
[
"Можете зайти, кому интересна тема ИБ - ",
{
"type": "link",
"text": "https://t.me/cybersecurity_for_all"
},
""
]
SlavikG
android studio vs vs code ?
ilx13
[
"Доброго времени суток. Раньше верстал на ios, debug console был чистым. выводилось только то что я выводил или ошибку. сейчас на андроиде пытался очень много мусора выводится. и это не ишибки.\nтипа ",
{
"type": "pre",
"text": "prepareNavigationBarInfo() DecorView@1e41d2e[MainActivity]",
"language": ""
},
""
]
ilx13
из за чего может быть это?
Gennady Vyacheslavovich
такой же конфиг, только в10, все ок
m_Rassska
у меня при запуске android studio комп пыхтит, не говоря уже о сборке...(
Gennady Vyacheslavovich
я с idea запускал
Gennady Vyacheslavovich
и с вскод
Gennady Vyacheslavovich
там эмуль выбрал и все
Jake
[
"Всем привет. Возникла проблема с пакетом ",
{
"type": "link",
"text": "https://pub.dev/packages/flutter_progress_hud/example"
},
". Работает на одном экране ",
{
"type": "link",
"text": "https://www.codepile.net/pile/GVYqljVe"
},
", а другом нет ",
{
"type": "link",
"text": "https://www.codepile.net/pile/l349K7YG"
},
". Сделал все вроде по инструкции. В чем может быть ошибка? StackTrace ",
{
"type": "link",
"text": "https://www.codepile.net/pile/gO9gydYZ"
},
" \nFirebase настроен, email&password enabled."
]
Harley
Всем привет такая проблема webview без проблем запускается на ios эмуляторе но никак не хочет запускаться на айфоне
Harley
ошибка library is not loaded ebview_flutter
Bretbas
[
"Здарова народ\nКто-нибудь юзал signalr на флаттере:\n",
{
"type": "link",
"text": "https://pub.dev/packages/signalr_netcore"
},
"\n\n??\n\nЕсли да, то подскажите, внедрили ли они поддержку потоковой передачи:\n",
{
"type": "link",
"text": "https://docs.microsoft.com/ru-ru/aspnet/core/signalr/streaming?view=aspnetcore-5.0"
},
""
]
Andrey
Как можно получить результат Navigator.pushReplacement на первом экране если он меняет второй на третий?
Stanislav
[
"всем привет\n\nкомпилятор не может вывести тип?\n\nесть класс с полем ",
{
"type": "pre",
"text": "final String? text;",
"language": ""
},
"\n\nи есть метод в котором например такое\n",
{
"type": "pre",
"text": "\nif (text != null) {\n String str = text;\n }\n\n",
"language": ""
},
"\n\nи ругается что нельзя присвоить String? к String"
]
Пашка
ну так потому что тип у текста String?
Stanislav
[
"компилятор после проверки ",
{
"type": "code",
"text": "text != null"
},
" должен понять"
]
Дмитрий Щербаков
Все правильно ругается
Stanislav
если text объявлен не как поле класса, а внутри метода, то все нормально
Урусай
Потому что в теории из соседнего потока кто-то может изменить переменную после проверки но до присваивания
Урусай
Хотя в дарте я хз как такое сделать
Пашка
final a = text; if (a != null) { String str = a; }
Stanislav
в дарте нет таких потоков
Урусай
Я не особо шарю за то как ивентлуп дартовский работает, может и можно как-то
Stanislav
так работает, но это и есть то же самое по сути, что способ который я сказал
Пашка
[
{
"type": "link",
"text": "https://dartpad.dev/8e1bb623664177623aae58df3c90f046?null_safety=true"
}
]
Don
Как можно сделаю функцию на подобие, установки обоя на телефон в flutter?
Don
flutter такое не поддерживает ?
Урусай
Флаттер - ui framework
Урусай
Всякие платформозависимые штуки пишутся отдельно от него
nikto _b
Чертовски подло - добавлять сайдэффекты в геттеры
Kit Khilobok
Разве что общий источник данных сделать, либо же отдавать данные через Navigator.pop(context, some_data) при уходе с третьего экрана на первый обратно
Andrey
[
"Ну вот последнее не работает, т.к. ",
{
"type": "code",
"text": "await"
},
" срабатывает на ",
{
"type": "code",
"text": "pushReplacement"
},
" и соответственно на ",
{
"type": "code",
"text": "pop"
},
" он уже не будет реагировать"
]
Алексей Пастушенко
Unhandled Exception: type '(AppRouterDelegate, LoginRoute) => LoginPage' is not a subtype of type '(AppRouterDelegate, AppRouterPath) => Page '
Алексей Пастушенко
ругается именно на LoginRoute =>AppRouterPath
Алексей Пастушенко
при этом LoginRoute расширяет AppRouterPath
Алексей Пастушенко
это баг или фича ??
Алексей Пастушенко
class LoginRoute extends AppRouterPath
Алексей Пастушенко
никто не сталкивался? как победить ?
Алексей Пастушенко
>5.5к человек и некому ответить :(
Олжас Сулеймен
отсей половину из них половину, еще половину, минус лень, разницу в часовом поясе ...
Алексей Пастушенко
в смысле кто не спит, тот зомбик за редким исключением ? :)
Алексей Пастушенко
у меня просто реально проблема, уже началась паранойя, что не понимаю как работаю женерики
Олжас Сулеймен
так тут разница в функциях
Алексей Пастушенко
это какая же
Олжас Сулеймен
а не, криво прочел
Алексей Пастушенко
[
{
"type": "pre",
"text": "addRoute (Page Function(AppRouterDelegate, T) pageInit)",
"language": ""
},
"\nвот - ничего криминального"
]
Алексей Пастушенко
видно что T должен быть экземпляром AppRouterPath
Алексей Пастушенко
[
{
"type": "pre",
"text": "modules.router.addRoute ((router, configuration) => LoginPage());",
"language": ""
}
]
Алексей Пастушенко
[
"то есть аргумент замыкания ",
{
"type": "code",
"text": "configuration"
},
" должен быть ",
{
"type": "code",
"text": "LoginRoute"
},
" который есть потомок от ",
{
"type": "code",
"text": "AppRouterPath"
},
""
]
Алексей Пастушенко
[
"но почему этот дарт не считает ",
{
"type": "code",
"text": "LoginRoute"
},
" потомком ",
{
"type": "code",
"text": "AppRouterPath"
},
" - в этом же весь смысл обобщений!"
]
d
Без кода тут вряд ли разобраться) только гадание на гуще
Алексей Пастушенко
так весь код выше
Алексей Пастушенко
объявление
Алексей Пастушенко
использование
Алексей Пастушенко
информация о наследовании
d
А LoginPage это некий Page?
Алексей Пастушенко
ошибку вызывает строка добавления в мапу
d
Кажется ругается он именно на это
Алексей Пастушенко
именно на вот это
Алексей Пастушенко
[
"добавляется вот в эту мапу \n",
{
"type": "pre",
"text": "Map routes = new Map();",
"language": ""
},
""
]
Алексей Пастушенко
с одной стороны можно не описывать подробно value мапы
Алексей Пастушенко
но с другой - явное описание чего должно лежать в значении элементов - как то предпочтительнее
d
Ну я могу Вам точно сказать что если Вы уверены что LoginRoute экстендит AppRouterPath то проблема точно не в том что он делает это
d
А так честно говоря по кусочкам кода тяжело составить общую картину
d
Я бы все же перепроверил что LoginPage имплементит Page и LoginRoute то же самое с AppRouterPath
Алексей Пастушенко
[
"если в качестве второго аргумента прописать ",
{
"type": "code",
"text": "LoginRoute"
},
" - то все хорошо, нет ошибки"
]
d
А можно увидеть чисто сигнатуры классов AppRouterPath, LoginRoute ?
Алексей Пастушенко
[
{
"type": "pre",
"text": "class LoginRoute extends AppRouterPath",
"language": ""
}
]
Алексей Пастушенко
[
{
"type": "code",
"text": "abstract class AppRouterPath"
}
]
Nikolay
[
"Добрый вечер всем.\nПодскажите пожалуйста,кто сталкивался с проблемой BlocProvider ругается на context \n\n",
{
"type": "bold",
"text": "No ancestor could be found starting from the context that was passed to."
},
"...\n\nЯ только начал изучать bloc, во flutter новичек. Код не под рукой если есть необходимость позже скину."
]
Алексей Пастушенко
провайдером то приложение обернул ?
Алексей Пастушенко
[
{
"type": "link",
"text": "https://bloclibrary.dev/#/gettingstarted"
}
]
Немеш
Каким образом можно добавить индикатор загрузки во время пагинации если я использую bloc. ???
Nikolay
BlocConsumer обернут listview и все последующее.
Алексей Пастушенко
по ссылке пройди, там в разделе тутуориалы достаточно подробные
Nikolay
Да.. спасибо. Уже разбираю.
Алексей Пастушенко
для того чтобы подписаться на блок, этот блок сначала нужно положить в контекст
Anton Kowalski
как отловить нажатие вне виджета?
Nikolay
Я как понял несколько видов реализации существуют. Но чаще всего встречаю в body Blocbuilder а далее работа на прямую через context.
Anton Kowalski
А какая функция подскажи, если не сложно?
Пашка
[
{
"type": "link",
"text": "https://flutter.dev/docs/cookbook/gestures/handling-taps"
}
]
Алексей Пастушенко
я больше через SimpleJsonPersistence реализую состояния хранимые
Anton Kowalski
Ты внимательно прочитал мой вопрос? Мне надо отловить нажатие вне виджета, а не на виджет
Nikolay
В нем событие onTap. Все легко. Если я не ошибаюсь)
Пашка
я внимательно прочитал, и предложил вариацию
Nikolay
А вне виджетов что? Пустота?)
Пашка
во флатере все есть виджеты
Anton Kowalski
Нет у меня есть пару ListTile и Text и Button, и мне надо чтобы когда я нажимаю вне ListTile, то срабативала функция.
Anton Kowalski
Вне определенного виджета
Nikolay
+++++ Павел дело говорит. У тебя есть body, что в нем?
Anton Kowalski
Да но когда я тапну по ListTile то сработает onTap
Эмиль
Ребята, подскажите Со страницы кликаю на карту, и перехожу в дитейл скрин, в котором есть билдер с картинками, которые я пытаюсь пробросить через навигатор Но, получается прокинуть только картинку с определенным индексом. Как пробросить весь лист?
Алексей Пастушенко
[
{
"type": "link",
"text": "https://api.flutter.dev/flutter/widgets/GestureDetector/behavior.html"
}
]
Nikolay
Нет. Если по нему тапнеш то на нем сработает. Если конечно listtile не занимает всю область родителя.
Anton Kowalski
Ок, спасибо.
Nikolay
Пожалуйста. Надеюсь поможет)
Anton Kowalski
И я надеюсь
Алексей Пастушенко
у детектора жестов есть поведения разные, которые позволяют как отлавливать прозрачно клики, так и не отлавливать, если клик был отловлен чем то выше. по умолчанию вроде как непрозрачное поведение
Nikita Kanunov
[
"Здравствуйте, утром спрашивал, но так и не понял в чем проблема: выдает ошибку 'AuthorizationBloc' doesn't extend 'B extends BlocBase ', но не могу понять почему? Вот сам код: ",
{
"type": "link",
"text": "https://pastebin.com/ZRzC7jhS"
},
". Сам блок: ",
{
"type": "link",
"text": "https://pastebin.com/Zeb0DNEF"
},
""
]
Nikita Kanunov
При этом другие блоки работают нормально
Пашка
[
{
"type": "mention",
"text": "@bunopus"
}
]
Nikita Kanunov
Из-за этого не работает навигация. Помогите пожалуйста)
Alex Wow
Короче Проверь пакеты ,вдруг наименование одно и тоже И ты вытаскиваешь другой класс ,который не наследуется от класса
Madi
Подскажите, я скачиваю список объектов из JSON и отображаю их через flutter_bloc. Я хочу сделать пагинацию списка, чтобы при прокрутке скачивались только 20 элементов. Так вот, к примеру когда я прокрутил 40 элементов, а затем перешел на другие страницы, то после возврата на страницу с блоком элементов отображение в списке начинается с 40 элемента, хотя я запускаю евент с нуля. В чем может быть проблема? На каждые 20 элементов у меня запускается евент в скроллконтролере
Nikita Kanunov
Я посмотрю, если что ещё напишу. Спасибо)
Олександр Пл
Всем привет. Можно ли как-то в самописной либе подтягивать динамически локализацию?
Jamshed Rakhmonov
[
"Ребят помогите происходит такая ошибка с работой sqflite, я получаю дату с api в формате datetime как я могу внести его в таблицу sqflite? \n",
{
"type": "pre",
"text": "await db.execute(\"CREATE TABLE Posts (\"\n \"id Text,\"\n \"title TEXT,\"\n \"text TEXT,\"\n \"images Text,\"\n \"video Text,\"\n \"fan_title Text,\"\n \"sinf_title Text,\"\n \"pubdate DATETIME,\"\n \"views TEXT,\"\n \"markaz_title TEXT,\"\n \"markaz_logo TEXT\"\n \")\");",
"language": ""
},
" это моя таблица sqflite"
]
Пашка
а разве он поддерживает date time?
Jamshed Rakhmonov
По моему должен поодерживать ,мне посоветовали поставить Timestamp ,но не помогло
Пашка
[
{
"type": "link",
"text": "https://github.com/tekartik/sqflite/blob/master/sqflite/doc/supported_types.md"
}
]
Jamshed Rakhmonov
Понятно,возможно ли конвертировать datetime в string при добавлении в таблицу.То есть в моделе у меня date time а при добавлении в таблицу добавлялся как String?
Jamshed Rakhmonov
Но,как?
Пашка
а что вообще интернет говорит?
Пашка
[
{
"type": "link",
"text": "https://stackoverflow.com/questions/57165310/create-a-datetime-column-in-sqlite-flutter-database"
}
]
Пашка
[
{
"type": "link",
"text": "https://api.dart.dev/stable/2.9.3/dart-core/DateTime/millisecondsSinceEpoch.html"
}
]
Jamshed Rakhmonov
[
{
"type": "pre",
"text": "DateTime pubdate;\npubdate: DateTime.parse(json[\"pubdate\"]),\n \"pubdate\": \"${pubdate.year.toString().padLeft(4, '0')}-${pubdate.month.toString().padLeft(2, '0')}-${pubdate.day.toString().padLeft(2, '0')}\",\n",
"language": ""
},
" это моя модель со строкой даты ,я могу сделать тип string ,но timeago его не воспринимает. Или подскажите как сделать кастомный timeago"
]
Пашка
я же тебе выше кинул как
Jamshed Rakhmonov
Короче не стал пока что не замарачивать и оставил тип в моделе string и в timeago добавил DateTime.parse(posts.pubdate) ,ну пока что работает
Хайём
Всем привет) Наверное все сталкивались с этой проблемой. Почему когда делаю push на новую страницу, то Navigator stack обновляется? Или когда keyboard открывается, то также все создаётся заново. Спасибо)
Алексей Пастушенко
[
{
"type": "link",
"text": "https://habr.com/ru/post/476018/"
}
]
Nikita Kanunov
Не, не в этом дело, все равно ошибку выдает
Yevhenii
Преобразуй дату в Unix timestamp
Yevhenii
И запиши как string
Jamshed Rakhmonov
Я в моделе поставил тип string
Nikita Kanunov
Я понял в чем проблема, просто ужас. У меня стэйты неправильно импортировались. Названия папки и файлов начиналось с большой буквы, когда у меня с маленькой)
Alex Wow
Ненавижу регистрозависимость
Nikita Kanunov
Я на поиск убил два дня)))
Alex Wow
Это одно из самых сложных Найти косяк ,который сложно заметить
Alex Wow
Типа опечаток и регистров
nikto _b
Просто должна быть жесткая нотация именования, а не как при старте проекта
Nikita Kanunov
Народ, а можно ли во flutter сделать Navigator.pop на нужный мне экран, а не на предыдущий?
Nikita Kanunov
А как можно извратиться?
Семён undefined
popAndPushNamed
Nikita Kanunov
Не совсем то что нужно, при нажатии кнопки назад все равно на предыдущий экран возвращает
Семён undefined
тогда .then или await прикрути к попу
Семён undefined
я впринципе так и делаю
Nikita Kanunov
А сможешь показать, как это правильно написать?
Семён undefined
а что там неправильно можно написать
Alexey
тебе жалко что ли!
Nikita Kanunov
Ну а вдруг я ошибусь)
Alexey
ну поправляйся скорее и пиши решение
Семён undefined
await Navigator.pop( Navigator.push
Nikita Kanunov
А так разве можно писать?
Семён undefined
нет, ты сам допишешь этот код
Nikita Kanunov
Нашел метод Navigator.of(context).pushNamedAndRemoveUntil и он мне подошел)
Nikita Kanunov
Есть вопрос: целесообразно использовать flutter для разработки, если предполагается разработка только под одну платформу?
Fearless Cry
ну вот ты реально не можешь сам ответить на этот вопрос?
Polite Cat
Navigator.of(context).pushReplacement() или Navigator.of(context).pushReplacementNamed() попробуй. Он заменяет в стеке страниц текущую на указанную
Polite Cat
Да, почему нет
Nikita Kanunov
Я решил взять Navigator.of(context).pushNamedAndRemoveUntil
Polite Cat
По названию то же самое
|