Урок 24: "Основы Flutter - CustomSingleChildLayout и CustomMultiChildLayout"
Vložit
- čas přidán 27. 07. 2024
- Разбираю два самых гибких виджета во Flutter
Пожертвования - boosty.to/lazyloadflutter
______
Канал с анонсами в телеграм - t.me/lazyload_flutter
______
Группа в телеграм - t.me/learnDartFlutter
______
Группа в вк - club203125105
______
00:00 - Вступление
01:00 - CustomSingleChildLayout
14:45 - CustomMultiChildLayout
Даа... Голова конечно раскалывается)). Спасибо за такие прекрасные уроки.Если бы не вы, то не знаю кто бы мог такой бесплатный и продуктивный курс записать по Dart & Flutter )
очень мало просмотров и комментариев, но вы продолжаете свой труд. Спасибо!
оууу, будет бессонная ночь! спасибо за то , что вы делаете
В Dart текст можно умножать на число, чтобы быстро увеличить количество текста. 'da' * 100 отобразится как сто раз 'da' подряд. Удобно для тестирования на большой текст.
Спасибо за разбор виджетов)
"Flutter простой и лаконичный" - говорили они... 90 строк кода, чтоб разбить текст на три колонки так как нам нужно)) В свифте и реакт нэйтив так же?) А так мне нравится. Многое не до конца понимаю, но пишу код и делаю заметки. Думаю на реальных задачах как минимум буду знать, где искать ответ. А дальше с практикой станет понятнее)
Хорошо что есть группа в вк, а в группе архивы на каждый урок. Без этого у меня бы лопнула голова при поиске ошибки в коде. Открыв нужный файл и сравнив его со своим и нашёл отличия почти сразу там где по многу раз проверял правильность написания кода, но почему именно так а не как у меня я сначала не понял. Поразмыслив при помощи простых подручных инструментах, ручки и листа бумаги, я нашёл объяснения своей проблеме и понял суть происходящего.
Ещё раз спасибо за архив. Это мне сэкономило время и не пришлось по многу раз пересматривать видео в поисках решения проблемы.
Огромное спасибо! Буду очень признателен если шрифт увеличите в последующих роликах, мелко все очень)
постараюсь не забыть это сделать, если забуду напоминай)
Здравствуйте,
Благодарю за то, что вы делаете! Ваш канал это находка. Всё очень круто: от голоса который приятно слушать, до вербозности подачи материала!
Я посмотрел пока только единственный урок, но планирую посмотреть всё что у вас тут есть!
Поддерживаю!!!
Всегда пишу код вместе с вами, очень помогает усвоить материал. Спасибо большое.
Жень, подписался на boosty. Ещё раз спасибо Тебе!!! И всех призываю, для нас копейки, а для Автора поддержка!
Большое спасибо за ваш труд!!! Коммент в поддержку!
Спасибо! Достаточно сложные для меня темы были, но попрактиковал после просмотра и все понял.
Евгений, огромнейшее спасибо за ваш труд, это очень круто) Бонус вам в карму))
Спасибо за уроки очень помогли)
Круто. Очень интересно, как детектив. Спасибо)
Спасибо за ваши уроки. Очень подробно и главное понятно для того кто начал с нуля. Очень хотелось бы увидеть урок про различный сахарок и как его настраивать (на уровне джуна). А особенно про Ctrl+клик и описания которые подсказывает сама IDE и SDK. Перерыл весь интернет мамой клянусь нет нигде этого.
отлично объясняешь! )
Ваши лекции просто бомба!. Перерыл не один канал на русском или англ. но ваш контект просто лучший! Почти год учу Flutter, около полугода пишу реальный web проект по примеру архитектуры ментора. Казалось, что вот вот что то начинаю понимать! Но посмотрел я ваши уроки и осознал, что еще ничего толком не знаю) Надеюсь после ваших видео начну куда осознаннее использовать знания.
Как ваши успехи с обучением?
Кстати tight читается как тайт
Align - Элайн
Alignment - Элайнмент
Дядя Жень, голова закипела!)
спасибо вам! ) огромное
Пока что не особо все понял но "пока что" изучу разные источники, получу больше опыта и вернусь еще раз
👍👍👍👍👍
хороший разбор. спасибо!
а будут видео про натягивание "бизнес-логики" на верстку?
какой длинны планируется курс?
конечно, как только с версткой разберёмся. Там будет много уроков, начиная от setState заканчивая всеми архитектурами)
конечно будет и сеть и хранение данных и вот это вот все))
@@LearnDartFlutter хороший план.
Планируется ли работа с периферией (гиро, NfC, Bluetooth)?
Не планировал, но возможно когда нибудь расскажу)
@@LearnDartFlutter это уже тонкости)
Сначала "учи базу до отказу"
OK!
Задача так и не решена, 27:20 разговор шел чтобы средний элемент остается по центру .... по ходу пьесы мы все таки согласились что это 49:23 тоже не плохо ... выходит не стоит этот огород городить, второй элемент будет все равно при всех способах смещен с центра... и не так как нас просили дизайнеры 26:34.
3 урока за 1 день.... это просто жесть, мозг кипит )))
я уже не помню точно что я там делал, но разве я не поставил центральный элемент по центру? со смещением если какая то надпись больше?
Не воспринимай негативно, вопрос-совет может рассказывать сразу про более общие фундаментальные вещи, как ты делал в первых уроках, например сразу по месту рассказать что такое Делегат, ведь это понятие не встречалось ранее насколько я понял, и оно более широкое чем только Дарт/Флаттер. Ведь Delegate не просто так пишут, если знать суть понятия сразу станет ясно примерно что это и зачем по имени объекта)
Но это просто название класса в данном случае)
@@LearnDartFlutter Да, но название о чем то говорит не так ли? Про вопрос выбора имен что это сложная задача ты знаешь не по наслышке, правильных имен. Ок) You are the boss))
Евгений здравствуйте, отличный контент!
При помощи делегата определяется размер CustomMultiChildLayout. В методе getSize жёстко установлена высота 100. По ширине всё сделано хорошо и гибко, но при добавлении контента в колонки, расширение контейнера по высоте не происходит, и контент просто не отображается. Вопрос в том как сделать, чтобы при увеличении высоты child'ов увеличивалась и высота родительского виджета?
Все так же, считать руками)
Очень сильно на самом деле тяжело понять зачем такую точную калибровку элементов делать. Я к середине если честно отключился для чего все это нужно. Но спасибо, последний лейаут классный. Нарисовал им зигу из контейнеров (не знаю для чего еще пока применить) (не одобряем)
Вообще я же сразу привел самый простой пример, выравнивание элементов как в appBar)
21:12 извините, как Вы "проваливаетесь" в виджет? или какое сочетание клавиш? на андроидСтудио теже?
ctrl + клик
@@LearnDartFlutter Спс
37:20
45:21 почему HOffset а не XOffset? типо x y
А почему нам нельзя вставить SizedBox вместо какого-то элемента тем самым на экране будет пусто? Просто ради такого пользоваться таким сложным виджетом , не очен ьпонятно зачем. Но вот некоторые вещи конечно интересные можно делать с ним.
Я не понял вообще зачем этот виджет без него можно сделать, очень сложный.
А про bloc планируются уроки?
да)
@@LearnDartFlutter но наверное ещё не скоро?)
да, не скоро, сначала надо основы рассказать)
@@LearnDartFlutter спасибо, буду ждать. Что то вообще не могу разобраться с ним, инфы мало как то
вообще там есть целый сайт с докой и кучей примеров по блоку)
заливайте все коды в github please
Если будете перезаписывать, то увеличьте шрифт, на мобилке не комфортно даже с зумом смотреть. И фон белый уберите отовсюду, в глаза лупит когда на ночь смотришь. И хрящами не щелкайте, вредная привычка и слышать это тоже не приятно. Варешку на одну руку наденьте на период отвыкания.
В остальном спасибо.
Спасибо, все прекрасно, в качестве пожелания - произносите пожалуйста правильно английские слова, а то когда слышу "алигмент" да "тигхт" просто бесится начинаю. Это же нетрудно послушать как они произносятся.
спасибо за отзыв, но с английскими словами извини, я с ним не дружу) читать читаю, а произношу плохо) и улучшать эти навыки только ради хороших уроков не очень продуктивно(
Но вообще если очень хочется, можешь мне в телеграмме писать, какие ошибки я допускаю в произношении, возможно и запомню))
@@DartMitai обесценивание фидбека не принесет улучшений.
На обеих сторонах если интересны улучшения, фидбека дайте и примите больше, йода говорит
Евгений делает крутой контент, а ему за английский предъявляют :)
@@user-jx8dh2de3e ну тхин (tight) реально мозг выносит)
*Я новичок во Flutter, но к концу видео появилось ощущение, что автор и сам уже запутался в том, как и что хотел сделать изначально. Если кому-то нужно центрировать второй элемент, в независимости от размеров других элементов, то можно немного изменить метод performLayout() на что-то типа этого:*
const minOtherElementWidth = 100;
final middleElementMaxWidth = size.width - minOtherElementWidth;
final middleElementSize = layoutChild(
2,
BoxConstraints.loose(Size(middleElementMaxWidth, size.height)),
);
var middleElementHOffset = size.width / 2 - middleElementSize.width / 2;
final middleElementYOffset =
size.height / 2 - middleElementSize.height / 2;
positionChild(2, Offset(middleElementHOffset, middleElementYOffset));
final leftElementMaxWidth = middleElementHOffset;
final leftElementSize = layoutChild(
1,
BoxConstraints.loose(Size(leftElementMaxWidth, size.height)),
);
final leftElementYOffset = size.height / 2 - leftElementSize.height / 2;
positionChild(1, Offset(0, leftElementYOffset));
final rightElementMaxWidth =
size.width - middleElementHOffset - middleElementSize.width;
final rightElementSize = layoutChild(
3,
BoxConstraints.loose(Size(rightElementMaxWidth, size.height)),
);
final rightElementHOffset = size.width - rightElementSize.width;
final rightElementYOffset = size.height / 2 - rightElementSize.height / 2;
positionChild(3, Offset(rightElementHOffset, rightElementYOffset));
Если изменить вторую строчку на final middleElementMaxWidth = size.width - minOtherElementWidth * 2.5; Будет выглядеть так, как и должно, ровно 33% каждому. При min = 100