Для создания «точек-индикаторов» для ScrollView в React Native можно использовать компоненты, такие как ViewPager и Pagination. Возможны несколько подходов к реализации данного функционала, но в этом ответе рассмотрим наиболее простой и распространенный вариант.
1. В первую очередь, следует установить необходимые пакеты через npm или yarn:
npm install react-native-pager-view react-native-pagination
2. Импортируем компоненты в файле с нашим ScrollView:
import ViewPager from '@react-native-community/viewpager'; import { Pagination } from 'react-native-pagination';
3. Создаем компонент, который будет содержать наш ScrollView с «точками-индикаторами». В данном примере назовем его ScrollViewWithIndicator
:
import React, { useState } from 'react'; import { View } from 'react-native'; const ScrollViewWithIndicator = ({ data }) => { const [currentPage, setCurrentPage] = useState(0); const onPageSelected = (e) => { setCurrentPage(e.nativeEvent.position); }; return ( <View style={{ flex: 1 }}> <ViewPager style={{ flex: 1 }} onPageSelected={onPageSelected} > {data.map((item, index) => ( <View key={index}>{/* ваш содержимое, к примеру изображение или текст */}</View> ))} </ViewPager> <Pagination dotsLength={data.length} activeDotIndex={currentPage} containerStyle={{ backgroundColor: 'transparent', paddingVertical: 8 }} dotStyle={{ width: 10, height: 10, borderRadius: 5, marginHorizontal: 8, backgroundColor: 'rgba(0, 0, 0, 0.75)', }} inactiveDotStyle={{ width: 10, height: 10, borderRadius: 5, marginHorizontal: 8, backgroundColor: 'rgba(0, 0, 0, 0.25)', }} inactiveDotOpacity={0.4} inactiveDotScale={0.6} /> </View> ); }; export default ScrollViewWithIndicator;
4. Используем наш компонент ScrollViewWithIndicator
в родительском компоненте и передаем ему данные, которые будут отображаться в ScrollView:
import React from 'react'; import { View } from 'react-native'; import ScrollViewWithIndicator from './ScrollViewWithIndicator'; const App = () => { const data = [ /* ваши данные, к примеру изображения или текст для ScrollView */ ]; return ( <View style={{ flex: 1 }}> <ScrollViewWithIndicator data={data} /> </View> ); }; export default App;
Теперь у вас должен быть работающий экран с ScrollView, который содержит «точки-индикаторы». Вы можете настроить стили компонентов ViewPager и Pagination в соответствии со своими потребностями.