react-native - React Native ScrollView 不滚动(我们认为问题不在于渲染,而在于渲染之上)
问题描述
我们正在尝试使我们的应用程序的屏幕可滚动,并且能够让它在我们所有的屏幕上工作,除了一个。奇怪的是,即使我们用许多不同的滚动视图教程替换了渲染函数中的所有内容,包括 facebooks 教程(https://facebook.github.io/react-native/docs/using-a-scrollview)(确保我们有正确的导入和风格的东西,如 flex),我们的屏幕不会滚动。
这是我们的代码:
//a bunch of imports including:
import React, { Component } from 'react';
import {ScrollView} from 'react-native'
class TutorialScreenNew extends Component {
state = {
//a bunch of states
}
async componentDidMount() {
// waits for tensorflowjs to be loaded and ready
})
this.model = await mobilenet.load()
this.setState({ isModelReady: true })
this.getPermissionAsync()
}
getPermissionAsync = async () => {
//some code
}
imageToTensor(rawImageData) {
//some code
}
classifyImage = async () => {
//some code
}
pickAndClassifyImage = async () => {
//some code
}
renderPrediction = prediction => {
return (
<Text key={prediction.className} style={styles.getStartedText}>
{prediction.className}
</Text>
)
}
handleCommon = (text) => {
this.setState({ common: text })
}
handleScientific = (text) => {
this.setState({ scientific: text })
}
submit = (common, scientific) => {
//some code
}
render() {
//some lets
//some conditionals
return(
<ScrollView
style={styles.container}
contentContainerStyle={styles.contentContainer}>
{!predictions && !isStatusReady && (
<View style={styles.container}>
//content
</View>
)}
{predictions && !isStatusReady && (
<View style={styles.container}>
//content
</View>
)}
{predictions && isStatusReady && (
<View style={styles.container}>
//content
</View>
)}
</ScrollView>
);
}
}
//also this is the container
container: {
flex: 1,
flexGrow: 1,
paddingTop: 20,
paddingBottom: 10,
backgroundColor: '#003308',
},
解决方案
您的代码似乎是正常的,只有当内容超过您设备的高度时,滚动视图才会可见,我添加了一个代码来演示这种情况,请尝试
class TutorialScreenNew extends Component {
...........
constructor(props) {
super(props);
this.state = {
sampleText : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque egestas efficitur sodales. Curabitur non massa leo.'
}
}
.........
render() {
return (
<View style={{flex:1}}>
<ScrollView
style={styles.container}
contentContainerStyle={styles.contentContainer}>
<View style={styles.container}>
<Text>{this.state.sampleText}</Text>
</View>
<View style={styles.container}>
<Text>{this.state.sampleText}</Text>
</View>
<View style={styles.container}>
<Text>{this.state.sampleText}</Text>
</View>
<View style={styles.container}>
<Text>{this.state.sampleText}</Text>
</View>
<View style={styles.container}>
<Text>{this.state.sampleText}</Text>
</View>
<View style={styles.container}>
<Text>{this.state.sampleText}</Text>
</View>
<View style={styles.container}>
<Text>{this.state.sampleText}</Text>
</View>
<View style={styles.container}>
<Text>{this.state.sampleText}</Text>
</View>
<View style={styles.container}>
<Text>{this.state.sampleText}</Text>
</View>
</ScrollView>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
flexGrow: 1,
paddingTop: 20,
paddingBottom: 10,
backgroundColor: '#003308',
},
});
推荐阅读
- python-3.x - numpy怎么办?...在 numpy 语法中找到“突出”计算的峰值
- php - 将第二个查询结果作为关联数组推送到从 fetch_assoc 获取的现有数据中
- java - 如何从中央位置启用和禁用单个计划作业?
- javascript - React - 异步修改 props
- javascript - 当我在 Node 中控制台登录时,req.body 会显示密码
- java - 如何打印出一组对象
- python - 不明白这个 TypeError: an integer is required
- c++ - 为什么不能将模板引用类型用作模板类型别名参数?
- javascript - 插件在带有 React JS 的 Webpack 中不起作用
- android - 如何在颤动中将徽章计数添加为BottomNavigationBarItem的一部分