Size: a a a

Dart & Flutter по-русски

2020 December 09

SL

Sergey Larionov in Dart & Flutter по-русски
Моё пояснение к тому, почему на разных телефонах UI может выглядеть немножко по-разному. А вот почему: размер экрана в логических пикселах может быть чуть-чуть разным.
источник

SL

Sergey Larionov in Dart & Flutter по-русски
38 логических пикс / мм, он же 96 dpi - это ПРИМЕРНОЕ значение, там так прям и сказано. Т.е. может отличаться, немного.
источник

V

Vadim in Dart & Flutter по-русски
честно говоря, да, я штангельциркулем не сравнивал, но вот это rouglhly в бою достаточно, чтобы понять, как что будет выглядеть на большинстве устройств. И то что на 4" экране "жесткая" верстка будет выглдеть не так как на 5"
источник

SL

Sergey Larionov in Dart & Flutter по-русски
речь не про 4" и 5" экраны, а про экран телефона и десктопа, например.

Мне аж прям самому стало интересно померить реальный devicePixelRatio в самых экзотических вариантах.
На устройствах:
1. все телефоны под рукой, включая старые
2. десктоп (24" FullHD и 32" 4K)
3. ноутбук (15" FullHD)
со следующими вариантами Флаттера:
1. приложение под Андроид (телефоны) или Windows (компьютеры)
2. web, причем дополнительно поиграться с масштабированием в браузере.
источник

V

Vadim in Dart & Flutter по-русски
Sergey Larionov
речь не про 4" и 5" экраны, а про экран телефона и десктопа, например.

Мне аж прям самому стало интересно померить реальный devicePixelRatio в самых экзотических вариантах.
На устройствах:
1. все телефоны под рукой, включая старые
2. десктоп (24" FullHD и 32" 4K)
3. ноутбук (15" FullHD)
со следующими вариантами Флаттера:
1. приложение под Андроид (телефоны) или Windows (компьютеры)
2. web, причем дополнительно поиграться с масштабированием в браузере.
вот это будет реально интересно. я просто сравнивал линейкой как-то))
источник

I

IIIYT in Dart & Flutter по-русски
Добрый вечер, можете подсказать варианты решения проблемы с нечитаемостью labelText? Использую TextFormField в нем InputDecoration с labelText.
источник

I

IIIYT in Dart & Flutter по-русски
источник

AD

Alexandr Drobyshev in Dart & Flutter по-русски
вот смотрю есть шейдеры, я могу наложить шейдер на виджет, но в шейдер передаю то что имеет метод createShader, то етсь градиенты

еще сомтрю ClipRect который рпинимает патч для обрезки

но не пойму как мне реализовать простую вещь)
то есть есть Icon(Icons.xxx)
и есть wave

как мне сделать из иконки маску для wave? 🙂
источник

EC

Evgeny Cherkasov in Dart & Flutter по-русски
Vadim
система говорит про плотность физических пикселей, что мне думать. или я не понял
Недавно столкнулся с проблемой - на телефоне с большим pixelRatio не влезал текст. Добавил проверку и динамическое масштабирование размера текста. У меня на эмуляторе все нормально. Но заказчик говорит что на девайсе проблема осталась.
Получается flutter не всегда правильно определяет pixelRatio из платформы...
источник

V

Vadim in Dart & Flutter по-русски
Evgeny Cherkasov
Недавно столкнулся с проблемой - на телефоне с большим pixelRatio не влезал текст. Добавил проверку и динамическое масштабирование размера текста. У меня на эмуляторе все нормально. Но заказчик говорит что на девайсе проблема осталась.
Получается flutter не всегда правильно определяет pixelRatio из платформы...
ты мне тогда тему подкинул про рендеробждект и постфрейм на виджете))
от пострфрейма вроде понятно было как можно избавиться, а от рендеробжекта я так и не понял - не все идеально во флаттере, но хорошо, что он развививается
pixelRatio похоже тоже может вести себя не адекватно, имхо, думаю это частный случай и от "прошивки" зависит, я уже не помню, откуда engine получает плотность, но вроде "стандартные" методы апишек использовал. Это андроид или айос был?
источник

EC

Evgeny Cherkasov in Dart & Flutter по-русски
Vadim
ты мне тогда тему подкинул про рендеробждект и постфрейм на виджете))
от пострфрейма вроде понятно было как можно избавиться, а от рендеробжекта я так и не понял - не все идеально во флаттере, но хорошо, что он развививается
pixelRatio похоже тоже может вести себя не адекватно, имхо, думаю это частный случай и от "прошивки" зависит, я уже не помню, откуда engine получает плотность, но вроде "стандартные" методы апишек использовал. Это андроид или айос был?
На конкретной модели Samsung проблема. У меня его нет, так что сам не мог разобраться. Так что непонятно, то ли самсунг неправильно отдает pixelRatio, то ли в чем то еще проблема
источник

V

Vadim in Dart & Flutter по-русски
Evgeny Cherkasov
На конкретной модели Samsung проблема. У меня его нет, так что сам не мог разобраться. Так что непонятно, то ли самсунг неправильно отдает pixelRatio, то ли в чем то еще проблема
https://github.com/flutter/engine/blob/78b567f7d55b66a6e9bcd59a8703202c1b8a6557/shell/platform/android/io/flutter/view/FlutterView.java#L177
вот вроде берет стандартно из платформы, можно отсюда "плясать"
источник

EC

Evgeny Cherkasov in Dart & Flutter по-русски
Насчет проблемы определения размера виджета - на недавней durtup спрашивал у ребят из surf. Посоветовали избегать подобных кейсов / по другому строить дерево. Еще посоветовали посмотреть их либу, которая типа решает этот вопрос. Я еще не изучал, но как понял там без рендер обжект и коллбэков тоже не обходится
источник

АР

Андрей Рудин... in Dart & Flutter по-русски
кстати вот да, надо бы потестировать на старых Самсунгах ) спасибо!
источник

V

Vadim in Dart & Flutter по-русски
имхо, получение данных из рендерслоя и на основе их строить виджеты в виджет слое, не совсем хорошая идея - считаю это недостатком текущей реализации виджетов, но пока как есть так есть
источник

АР

Андрей Рудин... in Dart & Flutter по-русски
что значит получение данных из рендерслоя?
источник

EC

Evgeny Cherkasov in Dart & Flutter по-русски
Андрей Рудин
что значит получение данных из рендерслоя?
Есть три слоя в реализации ui - виджеты, элементы и рендер объекты
источник

V

Vadim in Dart & Flutter по-русски
координат, размеров, положений и т.д. все что генериться на уровне renderobjectов при построении сцены
источник

АР

Андрей Рудин... in Dart & Flutter по-русски
я думал все есть виджеты
источник

V

Vadim in Dart & Flutter по-русски
есть сейчас некоторое количество "порталов" до рендерслоя и его "логики" лэйаута, например, тот же CustomSingleChildLayout.
источник