Смещение против выравнивания во флаттере

Хотя я знаю их использование и свойства, но иногда мне было трудно определить разницу между Offset а также Alignment так как оба они представляют точку в x-axis а также y-axis

2 ответа

Для других: Согласно https://api.flutter.dev/flutter/painting/Alignment-class.html, уравнение для выравнивания по смещению:

      offsetX = alignmentX * width/2 + width/2
offsetY = alignmentY * height/2 + height/2

Итак, используя некоторую алгебру, пойти другим путем и преобразовать смещение в выравнивание:

      alignmentX = (offsetX - width/2)/(width/2)
alignmentY = (offsetY - height/2)/(height/2)

Где ширина и высота — это ширина/высота родителя, на котором основано смещение (например, окно/экран, если используются глобальные координаты)

Смещение использует координаты для местоположения объекта. С другой стороны, выравнивание по-прежнему использует координаты, но родительские виджеты используются в качестве основы для координат.

Другие вопросы по тегам