Флаттер Интерполирует непрозрачность, когда находится в диапазоне

#flutter #interpolation #opacity #lerp

#трепетание #интерполяция #непрозрачность #lerp

Вопрос:

Я пытаюсь выяснить, есть ли способ использовать интерполяцию вместо более сложного вычисления и третичного оператора.

В этом примере есть контейнер, непрозрачность которого определяется на основе другого вызываемого значения status . Когда статус находится между -0.8 и -1, непрозрачность должна интерполироваться между 0 и 1.

До сих пор я достиг этого таким образом, но я надеюсь, что есть способ добиться этого с помощью a lerp или аналогичного.

 final double startAt = 0.8;

double _opacity = status > (startAt * -1)
        ? 0
        : (((status * -1) - startAt) * 4);
 

Комментарии:

1. это метод norm() , взятый из MathUtils класса android — вы можете вызвать num.clamp() результат, если хотите быть уверенным, что результат находится в диапазоне [0 ..1], независимо от того, что value вы предоставляете (в вашем случае status )