Метод setValue
Метод setValue у
ValueXY
записывает объект { x, y } без анимации.
Позиция на экране обновляется через
getTranslateTransform
или
getLayout.
Синтаксис
pan.setValue({ x: 24, y: 12 });
Параметры
| Параметр | Описание |
|---|---|
{ x, y } |
Новые координаты в логических пикселях. |
Пример
Давайте по нажатию переставим маркер в другой угол:
import { useRef } from 'react';
import { Animated, View, Pressable, Text } from 'react-native';
export default function App() {
const pan = useRef(new Animated.ValueXY({ x: 0, y: 0 })).current;
return (
<View style={{ flex: 1 }}>
<Pressable onPress={() => pan.setValue({ x: 100, y: 80 })}>
<Text>abcde</Text>
</Pressable>
<Animated.View style={{ transform: pan.getTranslateTransform() }}>
<View style={{ width: 32, height: 32, borderRadius: 16, backgroundColor: '#cc3366' }} />
</Animated.View>
</View>
);
}
На экране круг смещается сразу после касания.
Смотрите также
-
метод
setValue,
который ставит одно число у Value -
метод
getLayout,
который переводит координаты в left и top -
метод
spring,
который плавно ведет Value после жеста -
класс
PanResponder,
который обновляет ValueXY при перетаскивании