Matrix React Native-创建灵活的输入矩阵
我正在尝试用react native实现一个线性代数计算器应用程序,但在创建矩阵输入数字时遇到了问题 我不希望矩阵的大小是固定的,而是希望它具有灵活性,以便用户可以根据自己的需要调整大小 到目前为止,我有:Matrix React Native-创建灵活的输入矩阵,matrix,react-native,react-flexbox-grid,Matrix,React Native,React Flexbox Grid,我正在尝试用react native实现一个线性代数计算器应用程序,但在创建矩阵输入数字时遇到了问题 我不希望矩阵的大小是固定的,而是希望它具有灵活性,以便用户可以根据自己的需要调整大小 到目前为止,我有: import React from 'react'; import { StyleSheet, Text, View } from 'react-native'; class InputBox extends React.Component { render() { r
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
class InputBox extends React.Component {
render() {
return (
<View style={styles.inputBox}>
</View>
)
}
}
export default class App extends React.Component {
render() {
return (
<View style={styles.rootContainer}>
<View style={styles.topContainer} />
<View style={styles.matrixContainer}>
{ this._renderMatrixInputs() }
</View>
</View>
);
}
_renderMatrixInputs() {
// 3 x 3 matrix for now....
let views = [];
let size = 3;
for (var r = 0; r < size; r++) {
let inputRow = [];
for (var c = 0; c < 3; c++) {
inputRow.push(
<InputBox value={''} key={r.toString() +c.toString()} />
);
}
views.push(<View style={styles.inputRow} key={r.toString()}>{inputRow}</View>)
}
return views
}
}
const styles = StyleSheet.create({
rootContainer: {
flex: 1
},
topContainer: {
flex: .25,
},
matrixContainer: {
flex: 8,
},
inputBox: {
flex: 1,
alignItems: 'center',
justifyContent: 'center',
borderBottomWidth: 0.5,
margin: 10,
borderColor: '#91AA9D'
},
inputRow: {
flex: 1,
maxHeight: 75,
flexDirection: 'row',
justifyContent: 'space-between'
}
});
从“React”导入React;
从“react native”导入{样式表、文本、视图};
类InputBox扩展了React.Component{
render(){
返回(
)
}
}
导出默认类App扩展React.Component{
render(){
返回(
{this._renderMatrixInputs()}
);
}
_renderMatrixInputs(){
//现在是3 x 3矩阵。。。。
让视图=[];
设尺寸=3;
对于(var r=0;r
上面的代码没有功能,但它显示了我想要的外观
如果有人能帮我实现尺寸调整功能并正确实现文本输入框,我将不胜感激
谢谢 你发布的代码有什么问题?据我所知,您需要做的就是更改size变量并将其置于状态,或者通过props将其传递以使其更具动态性(您还需要替换嵌套for循环中的3)。然后只需在InputBox组件中添加一个
TextInput
。@AhmedWagdi您建议如何调整TextInput
s的大小?我应该使用显式高度和宽度还是使用flex
属性?感谢使用flex属性设置宽度,您已经正确设置了宽度,因此不需要更改任何内容。对于高度,它取决于您希望它的显示方式,您希望它在添加更多行时占据更多的高度,还是希望它保持相同的高度?@AhmedWagdi我希望它保持相同的高度。现在我很难将键盘关闭,因为react中的数字键盘没有“完成”按钮,在flex matrix中使用TouchableWithoutheedback是一种故障计量法,它可以执行以下操作:1)在rootContainer
上尝试将高度限制在300左右2)从RN导入键盘,避免查看并将rootContainer
包装在其中。3) 尝试将这些设置放在键盘上以避免出现视图:
在获得喜欢的设置之前,请随意使用配置