Метод isReduceMotionEnabled
Метод isReduceMotionEnabled класса
AccessibilityInfo
возвращает промис.
В ответе будет true, если в системе включено уменьшение движения,
и false в обычном режиме.
Синтаксис
const res = AccessibilityInfo.isReduceMotionEnabled();
Параметры
| Параметр | Описание |
|---|---|
| - | Аргументы не передают. |
Пример
Давайте узнаем настройку и запишем её в переменную:
import { AccessibilityInfo } from 'react-native';
AccessibilityInfo.isReduceMotionEnabled().then((reduce) => {
const res = reduce;
console.log(res);
});
В консоли будет true или false по настройке доступности устройства.
Пример
Давайте отключим декоративную анимацию при включённом reduce motion:
import { useEffect, useState } from 'react';
import { View, Text, AccessibilityInfo } from 'react-native';
export default function App() {
const [reduce, setReduce] = useState(false);
useEffect(() => {
AccessibilityInfo.isReduceMotionEnabled().then(setReduce);
}, []);
return (
<View>
<Text>{reduce ? 'abcde' : '12345'}</Text>
</View>
);
}
На экране подпись 'abcde' при true и '12345' при false.
Так можно выбрать статичный вид вместо анимации.
Смотрите также
-
метод
addEventListener,
который слушает'reduceMotionChanged' -
метод
isScreenReaderEnabled,
который проверяет чтение с экрана -
класс
Animated,
анимации которого стоит упрощать при reduce motion -
класс
AccessibilityInfo,
который даёт оба асинхронных запроса