我使用react-native-webvIEw在我的React Native应用中渲染一个WebVIEw.
在iOS上一切正常,但是在Android上,渲染WebVIEw时,我的屏幕闪烁(先黑后白,然后显示网页).
根据this answer,我尝试在< application>中添加androID:harDWareAccelerated =“ false”.我的AndroIDManifest.xml标签,但这并不能解决我的问题. (此外,它会隐藏使用高程样式属性创建的所有阴影效果)
<DelayedComponent key={key} style={{ height: 200,...style }}> <WebVIEw style={{ alignSelf: "stretch" }} source={{ uri: /* a youtube url */ }} renderLoading={() => <Loading />} startInLoadingState={true} scrollEnabled={false} /></DelayedComponent>
< DelayedComponent>只是呈现< WebView>一秒钟后(使用基本setTimeout).
export class DelayedComponent extends React.PureComponent< { delay?: number; renderLoading?: any } & VIEwProps,{ show: boolean }> { constructor(props) { super(props); this.state = { show: false }; } public render() { console.log("RENDER DELAYED",this.state); const loadingComp = this.props.renderLoading || ( <Text>Just wait a second...</Text> ); const { delay,renderLoading,...forwardProps } = this.props; return ( <VIEw {...forwardProps}> {this.state.show ? this.props.children : loadingComp} </VIEw> ); } public async componentDIDMount() { const delay = this.props.delay || 1000; await (() => new Promise(resolve => setTimeout(resolve,delay)))(); this.setState({ show: true }); }}
屏幕在< DelayedComponent>之后闪烁一秒钟.当< WebView>被陈列.
这里是一个视频链接,显示发生疯狂:https://drive.google.com/open?id=1dX7ofANFI9oR2DFCtCRgI3_0DcsOD12B
我希望呈现WebVIEw时屏幕不会闪烁,就像在iOS设备上一样.
谢谢您的帮助 !
最佳答案只需将WebVIEw样式的不透明度设置为0.99.< WebView样式= {{不透明度:0.99}} />
它可能与以下内容有关:
Rendering webview on android device overlaps previous siblings from same parent
编辑:将WebVIEw组件包装在VIEw中,并带有溢出:’hIDden’:< View style = {{flex:1,溢出:'hidden'}}>< WebView ... />< / View>也可以,但是由于某种原因有时可能导致应用程序崩溃. 总结
以上是内存溢出为你收集整理的在Android上渲染WebView时,屏幕闪烁一次 全部内容,希望文章能够帮你解决在Android上渲染WebView时,屏幕闪烁一次 所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)