Scrollview和flex的孩子:1

时间:2017-01-21 17:54:18

标签: react-native react-native-scrollview

是否可以使用ScrollView包裹的布局:

<ScrollView>
  <View>dynamic height</View>
  <View>flex with minHeight</View>
  <View>static height</View>
</ScrollView>

并满足以下先决条件:

第一个View的高度是动态的(取决于文本长度)。第三个View的高度是静态的(内部总是三个按钮)。屏幕的其余部分应使用地图填充View,但最小高度设置为250.

现在是棘手的部分:如果第一个View中有很多文字,那么地图不适合,就会出现滚动。我无法做到这一点。我试图给地图View flex: 1minHeight: 250,但它根本没有呈现。

解决方案

好的,我找到了解决问题的方法。在第一次渲染中,我得到屏幕高度(Dimensions)和第一个和第三个视图的高度(onLayout)。然后,我计算第二个视图(screenHeight - view1 - view3 - naviagtionHeight)和forceUpdate()的高度以重新渲染它。

enter image description here

1 个答案:

答案 0 :(得分:6)

contentContainerStyle={{flexGrow: 1}}道具添加到ScrollView,其子栏的flex:1将有效。所以你不需要手动计算它。