2015-12-25 84 views
0

我在react-native上写了一个简单的应用程序。它由<ListView>组成,显示<Image>的行。图像从网络中获取。它在iOS上运行得非常好。但在Android上,如果出现图像时出现问题。 FPS是0.9-3.2; 我使用systrace工具来弄清楚发生了什么。这是它的截图。react-native app lag on android

enter image description here

看起来一切都在UI线程中完成的。

这里是我的类的渲染功能:

render() { 
    return (
     <View style={styles.container}> 
      <ListView 
       style={styles.list} 
       dataSource={this.state.dataSource} 
       renderRow={this.renderRow.bind(this)} 
       /> 
     </View> 
    ); 
} 

renderRow(rowData) { 
    return <Image 
     style={{ width: 320, height: 320 }} 
     source={{uri: rowData.coverPhoto}} /> 
} 

我有机管局填充,我错过了一些东西。有人能帮我弄清楚究竟是什么? 谢谢!

+0

您是否试图追查问题是否与硬件相关? –

+0

我试着将'renderToHardwareTextureAndroid'设置为'true',但它没有停止 –

+0

但是它可能与任何一个设备的处理能力有关吗?你没有说你测试过的Android/iPhone。您应该确定问题是否与设备规格或ReactAndroid项目相关。 –

回答

-1

尝试改变

renderRow={this.renderRow.bind(this)} 

renderRow={this.renderRow} 
0

我遇到了同样的问题,最近并推断出是什么导致这个问题以及如何解决这个问题(至少对我来说)。我知道这是旧的,但我会留在这里,以防有人需要它。

原因

对我来说是从网图像。它的分辨率是巨大的(超过3000x4000),而我的<Image />组件被设计得很小(准确的说是50x50)。

有用于<Image />道具专为Android,这是resizeMethod(这不同于resizeMode)。我使用resizeMethod: resize,该应用在Android上运行良好。以下是documentation的更多信息。