滚动视图内部视图不起作用本机反应

Scroll View inside view not working react native

我在这里尝试一个简单的代码,但如果将滚动视图保存在另一个视图中,则滚动视图将无法正常工作。代码是这样的:

  return(
  <View>
    <Toolbar title={this.props.title}>
    </Toolbar>

    <ScrollView>

      <HomeScreenTop />
      <HomeScreenBottom navigator={navigator}/>

      </ScrollView>

  </View>
 );

但是如果将滚动视图保留为父视图,则效果很好。代码如下:

  return(
  <ScrollView>
    <Toolbar title={this.props.title}>
    </Toolbar>

      <HomeScreenTop />
      <HomeScreenBottom navigator={navigator}/>

  </ScrollView>
 );

现在的问题是我不想让我的工具栏上下滚动,我只想让工具栏下面的内容移动。我怎样才能做到这一点?

下一个问题:滚动视图是否必须是父视图才能返回工作?

你应该像这样在视图中包裹工具栏:

<View><Toolbar/></View>

将要滚动的组件包装在 scrollview 中,如下所示:

<ScrollView>your expected components...</ScrollView>

并为根视图提供弹性:

<View style={{flex:1}}>

最终您的代码将 运行 如您所愿。

顶部 <View> 必须具有样式 flex:1,而且 <ScrollView> 也具有

在样式中使用 属性 flexGrow,flex 对我不起作用。

 <ScrollView contentContainerStyle={{ flexGrow: 1 }}>
    ...
</ScrollView>

如果您使用本机基础的 <Form> 并且想要滚动 然后使用 KeyboardAwareScrollView

<KeyboardAwaareScrollView enableOnAndroid={true}>
.
.

</KeyboardAwareScrollView>

这将适用于 Android

2020-02 更新:它将与 React.Fragment <></><React.Fragment></React.Fragment> 一起使用。所以试试这个。

return(
  <>
    <Toolbar title={this.props.title}>
    </Toolbar>

    <ScrollView>

      <HomeScreenTop />
      <HomeScreenBottom navigator={navigator}/>

    </ScrollView>

  </>
 );

如果您正在使用 position: "absolute",,请删除它并尝试。 你可以试试

<SafeAreaView>

<ScrollView>

</ScrollView>

</SafeAreaView>

使用反应片段而不是 View 来包装你的滚动视图它对我有用

<>
<ScrollView>
 .......... 
</ScrollView>
</>

对我来说,用 TouchableWithoutFeedback 包裹的滚动视图有时会导致滚动视图无法运行。

这让我发疯,因为我按照每个人的建议添加了 <view> and <ScrollView>,但没有任何效果。然后我关闭了终端,然后使用以下命令再次重建应用程序:

npx react-native run-android

然后,它开始工作了。我希望这可以挽救某人的理智 :)

仅供参考,仅按 r(或刷新)也不起作用。我不得不重建它。

我为样式设置了高度属性。那对我有用。

我的代码:

 <View style={styles.listWrapper}>
       <ScrollView >
         <XYZ/>
       </ScrollView>
 </View>

样式:

 listWrapper:{
    // flex:1,
    // flexGrow:1,
    width:'80%',
    height:300,
},