调整滚动视图容器大小以响应缩放手势(iOS)

时间:2018-10-12 17:46:39

标签: react-native

Relevant snack

假设您有一个水平滚动视图,其中有几个嵌套的滚动视图:

<View style={styles.container}>
  <ScrollView
    style={{flex: 1}}
    horizontal
    minimumZoomScale={0.5}
    maximumZoomScale={1.2}
    directionalLockEnabled>
    <ScrollView
      style={{flex: 1}}
      contentContainerStyle={styles.column}>
      {dummyData.map(d => (
        <View
          style={styles.card}>
          <Text style={styles.paragraph}>
            {d.title}
          </Text>
        </View>)
      )}
    </ScrollView>
    <ScrollView
      style={{flex: 1}}
      contentContainerStyle={styles.column}>
      {dummyData.map(d => (
        <View style={styles.card}>
          <Text style={styles.paragraph}>
            {d.title}
          </Text>
        </View>)
      )}
    </ScrollView>
  </ScrollView>
</View>

如果您在iOS设备上打开零食,则会看到缩小时的嵌套滚动视图容器的高度保持不变,从而导致屏幕底部空白。

我已经阅读了ScrollView文档,但似乎无法控制这些容器的大小。理想情况下,我希望容器能够增长,只要它仍然具有可滚动的内容,以便嵌套的ScrollView始终垂直拉伸。

我已经尝试了许多不同的flex设置,但是无论如何,嵌套的ScrollView都会保留其初始高度。我可以通过编程方式计算和设置高度,但是似乎没有任何类型的onZoom事件监听器,因此我无法响应手势,并且onContentSizeChange不会在放大和缩小时触发。

我这里有什么选择吗?重申一下,我希望在缩放时垂直拉伸ScrollView容器,只要仍然有“屏幕外”内容

0 个答案:

没有答案