ReactNative ScrollView不会滚动到底部

时间:2017-04-06 12:41:50

标签: react-native scrollview

如果我尝试滚动到ScrollView的底部,它会弹回到默认位置,并且不会让我查看其全部内容。

我的(截断的)设置非常简单:

  <View>
    <View>
      <ABunchOfStuff />
    </View>   
    <View style={styles.sectionNode} >
      <ABunchOfStuff />
    </View>   
    <ScrollView>    <------ My broken ScrollView :(
      <View>
        <ABunchOfStuff />
      </View>
    </ScrollView>   
  </View>

这是我实际代码的简化版本。但我得出的结论是,某种“无限高度”#34;继续as in this reference

我确实尝试确保所有家长和所有家长flex: 1一直<View> <ScrollView>我的loading.jsp及其父母。但这似乎并没有成功。

关于如何调试这个的任何想法?我知道ReactNative的网站建议这样做,并说在检查员中很容易做到(但没有说明怎么做)。如果我认为那里有一个无限的高度&#34;问题,如何去寻找这个流氓无界的节点?还是别的什么?

10 个答案:

答案 0 :(得分:12)

尝试完全从ScrollView中取出flex,然后将flex: 1放在父级上。这对我有用。

答案 1 :(得分:3)

对我来说,问题是在ScrollView上设置paddingVerticalpaddingToppaddingBottom。只是不要这样做。它会影响ScrollView内容的高度,而ScrollView不会适当调整它。

答案 2 :(得分:2)

有界高度的东西意味着必须绑定ScrollView本身。 如果ScrollView具有无限高度,它将与您的内容一起拉伸,并且不会滚动。

您只需将height添加到ScrollView并查看其工作原理,从那里您可以使用绝对高度或使用flex以限制ScrollView高度的方式你想要什么。

答案 3 :(得分:2)

您必须确保ScrollView具有固定的高度,方法是为父母或自己设置。

我使用flex设置其高度而不是直接指定它,因此它适用于所有屏幕尺寸。所以对于你的代码类似

<View style={{flex: 1}}>
    <View>
      <ABunchOfStuff />
    </View>   
    <View style={styles.sectionNode} >
      <ABunchOfStuff />
    </View>   
    <ScrollView style={{flex:0.8}}>
      <View>
        <ABunchOfStuff />
      </View>
    </ScrollView>   
</View>

有关原生docs

的更多信息

答案 4 :(得分:0)

<ScrollView  style={{flex: 1, marginBottom: 30}} /> 
    items
</ScrollView>

答案 5 :(得分:0)

这对我有用

    <ScrollView>
       <View style={{height:2000}}>

       </View>
    <ScrollView>

重要的是为ScrollView内的元素设置一个定义的高度

答案 6 :(得分:0)

父视图必须具有style = {{flex:1}},然后滚动视图可以具有style = {{{flex:1}}

答案 7 :(得分:0)

这对我有用:

<View style={{flex: 1}}>
   <ScrollView>
      <View style={{paddingTop: 16, paddingBottom: 16}}>
         <SearchBar />
         <ItemsContainer />
      </View>
   </ScrollView>
</View>

答案 8 :(得分:0)

对我有用的是将 ScrollView 包装在 View 中。然后给 View 一个高度并在 ScrollView 上设置 flex : 1。

像这样:

 <View style={{ height: "60%" }}>
     <ScrollView style={{ flex: 1 }}>
       <List/>
     </ScrollView>
 </View>

答案 9 :(得分:-1)

添加<Text></Text> 在滚动视图的底部。它会给一些空间