React Native ScrollView

摘要: 本教程将教你如何使用 React Native ScrollView 组件在你的应用程序中创建可滚动内容。

React Native ScrollView 组件简介

当你有一组超出屏幕尺寸的组件列表时,有些组件将被隐藏。要通过滚动查看这些组件,可以使用 ScrollView 组件。

ScrollView 组件允许你滚动浏览组件列表。它支持垂直和水平滚动。

ScrollView 组件始终一次渲染嵌套组件,即使它们在屏幕上不可见。这被称为急切渲染

如果你有一个包含大量嵌套组件的列表,渲染将需要时间,并会降低应用程序的性能。

以下是用 ScrollView 组件的步骤

首先,从 react-native 库导入 ScrollView

import { ScrollView } from 'react-native';Code language: JavaScript (javascript)

其次,将组件包装在 ScrollView 组件中

<ScrollView>
    { /* Nested components */ }
</ScrollView>Code language: HTML, XML (xml)

ScrollView 组件始终需要一个边界高度才能正常工作。为此,你用边界高度设置父视图的高度,并确保所有父视图都具有边界高度。

例如,以下

<SafeAreaView style={{flex: 1}}>
   <ScrollView>
      {/* {children} */}
   </ScrollView>
</SafeAreaView>Code language: HTML, XML (xml)

ScrollView 组件始终需要边界高度,可以通过提供所有父视图的边界高度来设置。确保所有父视图都有边界高度。

请记住,ScrollView 应该始终被高度限制

以下示例在屏幕上渲染 30 个 Text 组件。由于组件数量很多,其中一些会被隐藏。

import { StyleSheet, Text, SafeAreaView } from 'react-native'

const ScrollViewDemo = () => {

    // create Text components
    const children = [];
    for (let i = 0; i < 30; i++) {
        children.push(<Text style={styles.text} key={i}>Text {i}</Text>);
    }

    // render the Text components
    return (
        <SafeAreaView style={styles.container}>
            {children}
        </SafeAreaView>
    );
}

export default ScrollViewDemo;
const styles = StyleSheet.create({
    container: {
        flex: 1
    },
    text: {
        fontSize: 40,
    }
});Code language: JavaScript (javascript)

应用程序渲染所有 Text 组件,但屏幕只显示其中一部分。

React Native ScrollView Demo

要通过滚动查看隐藏的组件,可以将 Text 组件包装在 ScrollView 中,如下所示:

import { StyleSheet, Text, SafeAreaView, ScrollView } from 'react-native'

const ScrollViewDemo = () => {

    // create Text components
    const children = [];
    for (let i = 0; i < 30; i++) {
        children.push(<Text style={styles.text} key={i}>Text {i}</Text>);
    }

    // render the Text components
    return (
        <SafeAreaView style={styles.container}>
            <ScrollView>
                {children}
            </ScrollView>
        </SafeAreaView>
    );
}

export default ScrollViewDemo;

const styles = StyleSheet.create({
    container: {
        flex: 1
    },
    text: {
        fontSize: 40,
    }
});Code language: JavaScript (javascript)

现在,你可以滚动查看内容了。

总结

  • 使用 ScrollView 组件在你的应用程序中创建可滚动内容。
  • ScrollView 组件始终一次渲染所有嵌套组件。
  • ScrollView 组件始终需要一个边界高度才能工作。
本教程对你有帮助吗?