как я могу прокручивать полный экран с помощью вкладок?

Как я могу прокручивать страницу своего профиля, где находится вкладка, а внутри вкладки - плоский список?

Нравится Instagram. Если вы заходите в свой профиль, там есть вкладка, и вы можете прокручивать вниз до тех пор, пока больше не будет доступных изображений.

Я использую эту библиотеку: https://github.com/satya164/react-native-tab-view

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

€: Я могу прокручивать, но он не показывает все результаты. И я не хочу прокручивать вкладку, я хочу прокручивать весь экран профиля

введите здесь описание изображения

      <ScrollView style={styles.containerProfil}>
        <View style={{flex: 1, flexDirection: 'column', alignItems: 'center', height: height * 1, width: width * 1, position: 'relative'}}>
          <TouchableOpacity style={{justifyContent: 'center', alignItems: 'center', position: 'relative'}} onPress={() => navigation.navigate('Platform')}>
            <ImageBackground style={styles.profilImage} resizeMode="cover" source={require('../assets/profil.jpg')} />
          </TouchableOpacity>
            <View style={{justifyContent: 'center', height: 40}}>
              <Text style={{ fontFamily: 'nunito-regular', color: '#333', fontSize: 20, letterSpacing: 0, marginVertical: 10}}>@lenamaier123</Text>
            </View>
            <View style={{flex: 1, backgroundColor: '#eee', width: width * 1}}>
              <ProfileTab /> <-- HERE ARE THE TABS
            </View>
        </View>
      </ScrollView>

Css:
  containerProfil: {
    flex: 1,
    backgroundColor: '#fff',
    position: 'relative',
    padding: 0,
  },
  profilImage: {
    width: 100,
    height: 100,
    borderRadius: 150 / 2,
    overflow: "hidden",
    borderWidth: 1,
    borderColor: '#eee',
    textAlign: 'center',
  },

ProfileTab.js

import * as React from 'react';
import { View, Text, useWindowDimensions, Dimensions } from 'react-native';
import { TabView, SceneMap } from 'react-native-tab-view';
import MyProducts from '../../../screens/profile/myProducts';

const height = Dimensions.get('window').height;
const FirstRoute = () => (
  <View style={{ flex: 1, backgroundColor: '#ff4081' }}>
    <MyProducts />
  </View>
);

const SecondRoute = () => (
  <View style={{ flex: 1, backgroundColor: '#673ab7' }}>
    <Text>Second</Text>
  </View>
);

const renderScene = SceneMap({
  first: FirstRoute,
  second: SecondRoute,
});

export default function TabViewExample() {
  const layout = useWindowDimensions();

  const [index, setIndex] = React.useState(0);
  const [routes] = React.useState([
    { key: 'first', title: 'First' },
    { key: 'second', title: 'Second' },
  ]);

  return (
    <TabView
      navigationState={{ index, routes }}
      renderScene={renderScene}
      onIndexChange={setIndex}
      initialLayout={{ width: Dimensions.get('window').width }}
      scrollEnable={true}
      style={{width: layout.width * 1}}
    />
  );
}

Flatlist.js

import React, { useState } from 'react';
import { StyleSheet, Text, View, TouchableOpacity, ScrollView, FlatList, SafeAreaView, Dimensions } from 'react-native';

const width = Dimensions.get('window').width;

const myProducts = () => {
  const [product, setProduct] = useState([
    {key: 1, text: 'Hose'},
    {key: 2, text: 'Hose'},
    {key: 3, text: 'Hose'},
    {key: 4, text: 'Hose'},
    {key: 5, text: 'Hose'},
    {key: 6, text: 'Hose'},
    {key: 7, text: 'Hose'},
    {key: 8, text: 'Hose'},
  ]);
  return (
    <View style={{width: width * 1}}>
      <FlatList
        data={product}
        scrollEnabled={true}
        keyExtractor={(item) => item.key.toString()}
        renderItem={({item}) => (<View style={{flex: 1, height: 80, width: width * 1, padding: 20, borderWidth: 1, bordderColor: '#eee'}}><Text style={{flex: 1, backgroundColor: 'red', color: 'blue'}}>{item.text}</Text></View>)}
      />
    </View>
  )
};

export default myProducts;

person localdata01    schedule 25.04.2021    source источник
comment
Поместите основной вид внутрь ScrollView   -  person Shivam Jha    schedule 25.04.2021
comment
Так и есть, первый код - это основной файл. Все остальные компоненты находятся внутри прокрутки.   -  person localdata01    schedule 25.04.2021
comment
также добавьте стиль flexGrow: 1 в вид прокрутки   -  person Shivam Jha    schedule 25.04.2021
comment
это не работает :(   -  person localdata01    schedule 25.04.2021


Ответы (2)


FlatList внутри ScrollView не работает должным образом.

FlatList внутри ScrollView не прокручивается — https://github.com/facebook/react-native/issues/19971

В качестве решения вашей проблемы я нашел это.

person Mustafa Lightwala    schedule 26.04.2021

Вы хотите это; https://www.npmjs.com/package/react-native-scrollable-tab-view-collapsible-header

Посмотри.

Если вы используете компонент FlatList внутри вкладки, измените <HScrollView> на <HFlatList>

person Mr.Drk    schedule 25.07.2021