11

是否可以有一个包含以下内容的布局ScrollView

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

并满足以下先决条件:

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

现在棘手的部分:如果 first 中有很多文本View,所以地图不适合,应该出现一个滚动。我无法做到这一点。我试图给出地图View flex: 1minHeight: 250,但它根本没有渲染。

解决方案

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

在此处输入图像描述

4

1 回答 1

20

添加contentContainerStyle={{flexGrow: 1}}道具ScrollView和它的孩子flex:1会工作。所以你不需要手动计算。

于 2017-12-06T12:01:24.740 回答