我正在用flatlist制作自動完成文本框。 我想在我擁有的每個元素上顯示一個列表。 現在當自動完成顯示。它會推開另一個文本框。
2個自動完成文本框:
當文本框顯示一個列表時,他們推開另一個文本框:
這應該可以做到:
<TextInput placeholder="search" onChangeText={(text) => this.populateList(text)} />
<View>
<FlatList
style={{ position: 'absolute' }}
data={this.state.data}
renderItem={({ item }) => <Text>{item.key}</Text>}
/>
</View>
<TextInput placeholder="search" />
下面是我用來測試的組件:
import React, { Component } from 'react';
import {
StyleSheet,
Text,
View,
FlatList,
TextInput
} from 'react-native';
export default class App extends Component {
constructor(props) {
super(props);
this.state = {
data: []
};
}
populateList = (text) => {
var characters = text.split("");
var data = [];
characters.forEach(element => {
data.push({ key: element });
});
console.log(data);
this.setState({ data });
}
render() {
return (
<View style={styles.container}>
<TextInput placeholder="search" onChangeText={(text) => this.populateList(text)} />
<View>
<FlatList
style={{ position: 'absolute' }}
data={this.state.data}
renderItem={({ item }) => <Text>{item.key}</Text>}
/>
</View>
<TextInput placeholder="search" />
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
}
});
添加樣式& quot位置:固定& quot在你的元素風格中 比如下面的例子:
<span style="position: fixed;" id="search_result"></span>