Когда я запускаю следующий код на своем телефоне
render() {
return [
<View style = {{ flex: 1, flexDirection: 'row' }}>
<Search />
</View>,
<View style = {{ flex: 1, flexDirection: 'row' }}>
<FlatList
style = {styles.list}
data = {this.state.products}
renderItem = {({ item }) => <ProductCard product = {item} />}
keyExtractor = {item => item.id}
/>
</View>,
];
}
Я получаю разделение экрана между компонентами Search и Productcard. Такое ощущение, что каждый из них по умолчанию занимает 50% экрана, но я хочу, чтобы они появлялись один за другим.
Компонент поиска - это просто фиктивный текст:
export default function Search() {
return <Text>Hej</Text>;
}
Но когда я снимаю их вокруг, это выглядит хорошо.





вы ищете что-то подобное?
render() {
return(
<View style = {{flex: 1, flexDirection: 'column'}}>
<View style = {{flexDirection: 'row' }}>
<Search />
</View>,
<View style = {{ flex: 1, flexDirection: 'row' }}>
<FlatList
style = {styles.list}
data = {this.state.products}
renderItem = {({ item }) => <ProductCard product = {item} />}
keyExtractor = {item => item.id}
/>
</View>
</View>
);
}
Я полагаю, вы хотите, чтобы они прокручивались, в таком случае вам нужно обернуть их вокруг <ScrollView>.
вот так,
render() {
return (
<ScrollView>
<View style = {{ flex: 1, flexDirection: 'row' }}>
<Search />
</View>,
<View style = {{ flex: 1, flexDirection: 'row' }}>
<FlatList
style = {styles.list}
data = {this.state.products}
renderItem = {({ item }) => <ProductCard product = {item} />}
keyExtractor = {item => item.id}
/>
</View>
</ScrollView>
);
}
А во втором случае, если вы хотите, чтобы прокручивалась только вторая половина, просто оберните это представление в тег <ScrollView>.
Спасибо за помощь, это привело меня в правильном направлении, но я заставил его работать с помощью кода ниже:
<View>
<Search />,
<FlatList
style = {styles.list}
data = {this.state.products}
renderItem = {({ item }) => <ProductCard product = {item} />}
keyExtractor = {item => item.id}
/>
,
</View>
Можете ли вы удалить flex: 1 из обоих представлений в приведенном выше коде, а затем проверить.