Comments 14
Вторая статья за сегодня, к чему бы это? А как кстати приложение на Флаттере переживает смену ориентации смартфона?
+1
Тут упомянуто. Виджеты перерисовываются, состояние (включая неявное, например положение скролла) — остаётся.
0
Тут тоже надо сохранять данные в бандл перед тем как активность будет уничтожена и извлекать при ее новом создании, или это делается как то иначе?
0
Flutter не поддерживает saveInstanceState. Он все просто держит в памяти до смерти процесса. При смерти процесса в фоне состояние потеряется.
0
А вот к примеру для разных экранов тоже не надо создавать отдельные файлы?
0
По желанию. Можно создавать, можно не создавать. Есть единая структура виджетов и даже то, что считать в нём экраном — можно менять. Например в приложении из примера я могу повесить навигатор на переключатель табов и в приложении кнопка «назад» будет путешествовать по истории переключения табов.
0
Я не так выразился, для разных размеров экранов?
0
И для разных размеров экранов тоже. Корневой виджет — приложение. Дальше мы хотим, например, для планшетов слева всегда показывать меню, а для смартфонов делать его условно отдельным экраном. Мы в отображении приложения проверяем ширину экрана и, в зависимости от неё, строим разные деревья виджетов.
0
Во Flutter нет ничего, похожего на концепцию активности.
0
Ух, прям праздник вчера был, аж 2 статьи про flutter.
0
Пробовал начать писать на нем приложение, заткнулся на том, что он не умеет навигацию хардварной клавиатурой, от слова совсем. Переключать фокус на другие элементы управления можно либо программно, либо тыкая в них пальцем.
Это бы ещё ничего, можно написать логику программно, но вот например для чекбокса вообще отсутствует понятие фокуса, соответственно его переключать можно только пальцем.
Вобщем, на этом и закончилось моё с ним знакомство, т.к. в той задаче нужна была как раз возможность навигации с клавиатуры.
Может позже сделают :)
Это бы ещё ничего, можно написать логику программно, но вот например для чекбокса вообще отсутствует понятие фокуса, соответственно его переключать можно только пальцем.
Вобщем, на этом и закончилось моё с ним знакомство, т.к. в той задаче нужна была как раз возможность навигации с клавиатуры.
Может позже сделают :)
0
Здесь сразу несколько мыслей:
1. В рамках философии Flutter, пользовательский интерфейс должен извлекать максимум из платформы. Так что поддержка клавиатурного ввода — это, скорее всего, будет отдельный набор виджетов. И вряд ли от разработчиков Flutter.
2. Сделать такой набор виджетов, на самом деле, не так трудно самому. Flutter предоставляет колоссальные возможности по их кастомизации, как в части внешнего вида, так и в части поведения.
3. Вообще это выглядит как не очень удачный выбор фреймворка. Flutter хорош для кросс-платформенной мобильной разработки. Если нужна разработка под конкретное устройство, да ещё и с нехарактерным для мобильных способом ввода — тут просится натив.
1. В рамках философии Flutter, пользовательский интерфейс должен извлекать максимум из платформы. Так что поддержка клавиатурного ввода — это, скорее всего, будет отдельный набор виджетов. И вряд ли от разработчиков Flutter.
2. Сделать такой набор виджетов, на самом деле, не так трудно самому. Flutter предоставляет колоссальные возможности по их кастомизации, как в части внешнего вида, так и в части поведения.
3. Вообще это выглядит как не очень удачный выбор фреймворка. Flutter хорош для кросс-платформенной мобильной разработки. Если нужна разработка под конкретное устройство, да ещё и с нехарактерным для мобильных способом ввода — тут просится натив.
0
1. Нелогично делать отдельным набором, т.к. пользователь может, например, использовать приложение на ChromeOS или просто подключить Bluetooth-клавиатуру к смартфону.
Впрочем, там есть открытые тикеты: github.com/flutter/flutter/issues/1608 про общую навигацию, и github.com/flutter/flutter/issues/11344 про кнопки «Next» и пр. на экранной клавиатуре.
Просто, я так понимаю, ещё не дошли до реализации.
2. В теории да, но на практике там ещё возникает проблема с тем, чтобы перехватить, например, кнопку «Tab» в поле ввода — нужно отменить ввод символа и переместить фокус на следующее поле. С фокусом проблем никаких, а вот перехватить ввод символа на данный момент невозможно, получается что просто обернуть типовое поле ввода не получится, нужно делать своё.
Вобщем, реально, но слишком много работы получается.
3. Ну так в натив и ушел. Но опять-таки, как раз ничего нехарактерного как минимум для Android тут нет, всё очень даже стандартное — телефоны с аппаратными клавишами существуют, пусть и не особо популярны.
Впрочем, там есть открытые тикеты: github.com/flutter/flutter/issues/1608 про общую навигацию, и github.com/flutter/flutter/issues/11344 про кнопки «Next» и пр. на экранной клавиатуре.
Просто, я так понимаю, ещё не дошли до реализации.
2. В теории да, но на практике там ещё возникает проблема с тем, чтобы перехватить, например, кнопку «Tab» в поле ввода — нужно отменить ввод символа и переместить фокус на следующее поле. С фокусом проблем никаких, а вот перехватить ввод символа на данный момент невозможно, получается что просто обернуть типовое поле ввода не получится, нужно делать своё.
Вобщем, реально, но слишком много работы получается.
3. Ну так в натив и ушел. Но опять-таки, как раз ничего нехарактерного как минимум для Android тут нет, всё очень даже стандартное — телефоны с аппаратными клавишами существуют, пусть и не особо популярны.
0
Sign up to leave a comment.
Управление состоянием в приложениях на Flutter