我无法在ScrollView容器内使用FlexWrap属性.

我的代码如下所示

function Home({ navigation }) {
  return (
    <View style={styles.container}>
      <ScrollView style={styles.scrollContainer}>
        <LayoutButton
          navigation={navigation}
          title={"go to setting"}
          path="Setting"
        />
        <LayoutButton
          navigation={navigation}
          title={"go to setting"}
          path="Setting"
        />
        <LayoutButton
          navigation={navigation}
          title={"go to setting"}
          path="Setting"
        />
        <LayoutButton
          navigation={navigation}
          title={"go to setting"}
          path="Setting"
        />
        
      </ScrollView>
      <StatusBar style="auto" />
    </View>
  );
}

而这个的样式是

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: "#fff",
    alignItems: "center",
    justifyContent: "center",
    flexWrap: "wrap",
  },
  scrollContainer: {
    backgroundColor: "#B7C3F3",
    width: "100%",
    flexWrap: "wrap",
  },
});

我不知道Flex能否在ScrollView下工作.我是新来的,请帮我解决这个问题,提前谢谢

推荐答案

Reaction Native中的ScrollView组件不支持FlexWrap属性.这是因为ScrollView组件设计为水平或垂直滚动内容,具体取决于水平和垂直props 的配置.它不支持在其容器内包装内容.

如果要使用FlexWrap属性,则可以使用支持换行的其他布局组件,如View组件.您可以将View组件嵌套在ScrollView组件中,并将fleWrap属性应用于嵌套的View组件,如下所示:

function Home({ navigation }) {
  return (
    <View style={styles.container}>
      <ScrollView style={styles.scrollContainer}>
        <View style={styles.wrapContainer}>
          <LayoutButton
            navigation={navigation}
            title={"go to setting"}
            path="Setting"
          />
          <LayoutButton
            navigation={navigation}
            title={"go to setting"}
            path="Setting"
          />
          <LayoutButton
            navigation={navigation}
            title={"go to setting"}
            path="Setting"
          />
          <LayoutButton
            navigation={navigation}
            title={"go to setting"}
            path="Setting"
          />
        </View>
      </ScrollView>
      <StatusBar style="auto" />
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: "#fff",
    alignItems: "center",
    justifyContent: "center",
  },
  scrollContainer: {
    backgroundColor: "#B7C3F3",
    width: "100%",
  },
  wrapContainer: {
    flexWrap: "wrap",
  },
});

在此示例中,具有wrapContainer样式的View组件嵌套在ScrollView组件中,并将FlexWrap属性应用于该View组件.这允许View组件的子元素包装在容器中.

请注意,您可能需要调整View组件及其子元素的Width和Flex属性,以确保它们在容器中正确包装.您可能还需要调整ScrollView组件的宽度和高度属性,以确保它足够大以包含所有包装的内容.

Javascript相关问答推荐

如何在NightWatch.js测试中允许浏览器权限?

我的glb文件没有加载到我的three.js文件中

Cookie中未保存会话数据

调用removeEvents不起作用

JS,当你点击卡片下方的绿色空间,而它是在它的背后转动时,

如何在bslib nav_insert之后更改导航标签的CSS类和样式?

编剧如何获得一个div内的所有链接,然后判断每个链接是否都会得到200?

不能将空字符串传递给cy.containes()

从页面到应用程序(NextJS):REST.STATUS不是一个函数

令牌JWT未过期

警告框不显示包含HTML输入字段的总和

如何在一个对象Java脚本中获取不同键的重复值?

如果NetSuite中为空,则限制筛选

如何压缩图像并将其编码为文本?

Plotly.js栏为x轴栏添加辅助文本

在传单的图像覆盖中重新着色特定 colored颜色 的所有像素

使用Java脚本在div中创建新的span标记

浮动标签效果移除时,所需的也被移除

从客户端更新MongoDB数据库

使用JavaScript或PHP从div ID值创建锚标记和链接