Мой компонент ScrollView не работает, несмотря на все онлайн-решения

Недавно я начал изучать React Native, и у меня возникли некоторые проблемы со стилем и преобразованием кода попутным ветром, но в итоге я столкнулся с более раздражающей проблемой... Мой тег ScrollView не прокручивается...

import { ScrollView, View, Text } from "react-native";
import React from "react";
import { SafeAreaView } from "react-native-safe-area-context";

const Home = () => {
  return (
    <SafeAreaView className = " flex-1">
      <ScrollView
        contentContainerStyle = {{
          display: "flex",
          height: "100%",
          alignItems: "center",
          padding: 8,
          margin: 2,
          flex: 1,
          flexGrow: 1,
          marginHorizontal: 20,
        }}
      >
        <View className = " w-screen h-[500px] items-center mt-1">
          <View className = "bg-pink-300 h-2/5 w-11/12 m-1 rounded-lg items-center">
            <Text className = "text-center text-2xl font-black text-black">
              graph of payment made recently
            </Text>
          </View>
          <View className = "bg-slate-300 h-2/5 w-11/12 m-1 rounded-lg items-center">
            <Text className = "text-center text-2xl font-black text-black">
              recent payments made
            </Text>
          </View>
          <View className = "bg-slate-300 h-2/5 w-11/12 m-1 rounded-lg items-center">
            <Text className = "text-center text-2xl font-black text-black">
              recent payments made
            </Text>
          </View>
          <View className = "bg-slate-300 h-2/5 w-11/12 m-1 rounded-lg items-center">
            <Text className = "text-center text-2xl font-black text-black">
              recent payments made
            </Text>
          </View>
          <View className = "bg-slate-300 h-2/5 w-11/12 m-1 rounded-lg items-center">
            <Text className = "text-center text-2xl font-black text-black">
              recent payments made
            </Text>
          </View>
        </View>
      </ScrollView>
    </SafeAreaView>
  );
};

export default Home;

это моя домашняя страница в маршруте (вкладках). Я рассмотрел так много вопросов о переполнении стека, так много других веб-сайтов, но ни одно из решений не работает. Еще отмечу, что большинство из них говорит об изменении настроек флекса и прочем.

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

Пожалуйста, помогите, у меня из-за этого теряются волосы (в основном это какая-то глупость, которую я не добавил) Заранее спасибо

Можете ли вы добавить скриншот экрана, потому что кажется, что в прокрутке не так много контента, чтобы его можно было прокручивать. Он не прокручивается, если прокручиваемый контент легко помещается в область прокрутки.

shrey kulshrestha 28.05.2024 08:52

сделанный. Загрузил фото

surya narayanan 28.05.2024 08:57

Попробуйте добавить маржуBottom к основному представлению, в котором присутствуют все эти четыре представления, и посмотрите, работает ли это.

shrey kulshrestha 28.05.2024 09:19

нет, не работает

surya narayanan 28.05.2024 09:58

Я еще раз проверил ваш код, и парень выше был прав: сначала удалите высоту из ScrollView, а затем удалите высоту из представления, охватывающего все представления внутри. Это ограничивает просмотр прокрутки, и вы также можете удалить display: "flex", поскольку он на самом деле не требуется в React-native.

shrey kulshrestha 28.05.2024 12:20
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
6
72
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

В стиле контейнера контента никогда не придавайте высоты или гибкости. Он перестанет прокручиваться

измените стиль контейнера контента, как показано ниже:

  <ScrollView
    contentContainerStyle = {{
      display: "flex",
      alignItems: "center",
      padding: 8,
      margin: 2,
      flexGrow: 1,
      marginHorizontal: 20,
    }}

нет, не работает

surya narayanan 28.05.2024 09:57
Ответ принят как подходящий

Я запустил ваш код в React Native, и вот изменения, которые вам следует внести в стиль ScrollView:

<SafeAreaView style = {{flex: 1}}>
  <ScrollView
    style = {{
      padding: 8,
      margin: 2,
      flex: 1,
      marginHorizontal: 20,
    }}>

  </ScrollView>
</SafeAreaView>

Кроме того, удалите фиксированную высоту контейнера (h-[500px]). Вместо использования процентов для высоты (h-2/5) укажите числовое значение высоты. Такой подход обеспечивает лучшую совместимость и скорость реагирования на разных устройствах.

Другие вопросы по теме