Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
60 of 196 menu
◀ ▶

Метод scrollToOffset

Метод scrollToOffset вызывают на ссылке ref компонента FlatList. Он сдвигает содержимое так, чтобы заданное смещение offset оказалось у начала прокрутки по главной оси.

Синтаксис

ref.current.scrollToOffset({ offset, animated });

Параметры

Параметр Описание
offset Смещение содержимого списка в логических пикселях от начала.
animated При true прокрутка идет с анимацией.

Пример

Давайте прокрутим список на фиксированное расстояние:

import { useRef } from 'react'; import { FlatList, Text, Pressable } from 'react-native'; const data = ['abcde', '12345', 'abcde', '12345']; export default function App() { const ref = useRef(null); return ( <> <Pressable onPress={() => ref.current?.scrollToOffset({ offset: 80, animated: true })}> <Text>abcde</Text> </Pressable> <FlatList ref={ref} data={data} keyExtractor={(item, index) => String(index)} renderItem={({ item }) => <Text>{item}</Text>} /> </> ); }

На экране видимая область сместится вниз на заданное число пикселей.

Пример

Давайте вернем список к началу без анимации:

import { useRef } from 'react'; import { FlatList, Text, Pressable } from 'react-native'; const data = ['abcde', '12345']; export default function App() { const ref = useRef(null); return ( <> <Pressable onPress={() => ref.current?.scrollToOffset({ offset: 0, animated: false })}> <Text>12345</Text> </Pressable> <FlatList ref={ref} data={data} keyExtractor={(item, index) => String(index)} renderItem={({ item }) => <Text>{item}</Text>} /> </> ); }

На экране прокрутка сразу вернется к первому пункту.

Смотрите также

  • метод scrollToIndex,
    который прокручивает к номеру пункта
  • метод scrollToEnd,
    который прокручивает к последнему пункту
  • метод scrollTo,
    который прокручивает ScrollView к координатам
  • компонент FlatList,
    который строит список по видимым пунктам
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить