Я пытаюсь изменить numColumns FlatList при изменении ориентации (например, для портрета: numColumns = 2 и ландшафта numColumns = 3)
Но для каждого элемента в списке требуется разная ширина введите изображениеописание здесь
Я пытался использовать Размеры для динамического изменения ширины каждого элемента
constructor(props) {
super(props);
Dimensions.addEventListener("change", this.updateStyles);
}
componentWillUnmount() {
Dimensions.removeEventListener("change", this.updateStyles);
}
updateStyles = dims => {
this.setState({
viewMode: dims.window.width > 400 ? "landscape" : "portrait"
});
};
Для стилизации
const styles = StyleSheet.create({
listContainer: {
flex: 1,
flexDirection: "row"
},
landscapeListItem: {
width: Dimensions.get("window").width / 3 - 20
},
portraitListItem: {
width: Dimensions.get("window").width / 2 - 10
}
});
Так это выглядит так:
Перезагрузка экрана корректно применяет ширину.Но я не хочу его перезагружать.Он должен установить ширину при изменении ориентации.
Кто-нибудь знает, как я могу решить эту проблему?