【发布时间】:2017-07-10 01:24:29
【问题描述】:
我有以下布局,当数据大于屏幕时需要滚动:
图片:
代码:
export default () => (
<Container hasNavBar={false}>
<View style={{flex: 1}}>
<View style={Styles.container}>
<View style={{
flex: 1, backgroundColor: 'red',
alignItems: 'center',
justifyContent: 'center',
}}>
<Text>Area 1</Text>
</View>
<View style={{
flex: 2, backgroundColor: 'yellow',
alignItems: 'center',
justifyContent: 'center',
}}>
<Text>Area 2</Text>
</View>
</View>
</View>
</Container>
);
按照 react-native 的文档添加滚动,我需要使用 ScrollView 组件创建我的布局的包装器,但是当添加 scrollView 组件时,我的布局中断了:
图片:
代码:
export default () => (
<Container hasNavBar={false}>
<ScrollView style={{flex: 1}}>
<View style={Styles.container}>
<View style={{
flex: 1, backgroundColor: 'red',
alignItems: 'center',
justifyContent: 'center',
}}>
<Text>Area 1</Text>
</View>
<View style={{
flex: 2, backgroundColor: 'yellow',
alignItems: 'center',
justifyContent: 'center',
}}>
<Text>Area 2</Text>
</View>
</View>
</ScrollView>
</Container>
);
容器组件
<View style={flex: 1}>
{this.props.children}
<DropdownAlert
closeInterval={10000}
updateStatusBar={false}
ref={(ref) => this.dropdown = ref}
onClose={() => null}/>
</View>
我是怎么解决的?
【问题讨论】:
-
什么是
Container?你确定它应该是顶级组件吗? -
@VojtaNovak 我添加了容器组件代码,它是一个简单的包装器,用于在将成为您的孩子的所有页面中添加全局警报。
-
考虑使用
flexGrow: 1而不是flex: 1。flex属性是flexGrow和flexShrink的简写,后者可能会影响您的设计 -
我尝试使用 flexGrow 但不适用于我的情况。
标签: javascript react-native scrollview