android响应屏幕尺寸改变,当屏幕或尺寸改变大小时,如何在React Native触发器中设置EventListener...
我用{React-Native : 0.55.4,React-Navigation: 2.0.1}现在我想在React Native App(android)中制作响应式View,例如我使用dimensions.get('window').width一些 property 的大小现在,当我更改设备中的屏幕尺寸(方向(横向|纵向))时,当发生这种情况时,我会触发一些处理程序再次渲染View,再次初始
我用
{
React-Native : 0.55.4,
React-Navigation: 2.0.1
}
现在我想在React Native App(android)中制作响应式View,例如我使用
dimensions.get('window').width
一些 property 的大小
现在,当我更改设备中的屏幕尺寸(方向(横向|纵向))时,当发生这种情况时,我会触发一些处理程序再次渲染View,再次初始StyleSheet以获取尺寸的新值传递给样式
我有2个解决方案,
react-native-extended-stylesheet
2-使用static dimensions.addEventListener(type,handler)
------------------------------------------------------
在第一个解决方案中,当我以不同的方向(横向/纵向)重新渲染应用程序时,一切运行良好,但如果我更改方向样式未更改
在第二个解决方案中,我为维度中的set EventListener创建处理程序,并尝试这种方式设置Handler on - > onLayout
handleLayout(event) {
if (this.state.dimensions) return // layout was already called
let {width, height} = event.nativeEvent.layout;
this.setState({dimensions: {width, height}})
}
并将此处理程序设置为我的Component
但是当我改变方向时,得到这个错误
undefined is not an object (evaluating subscription.listener.apply )
在componentDidMount中设置侦听器时也会出现此错误
Dimensions.addEventListener("change", this.changeStyle());
更多推荐
所有评论(0)