2016-01-21 74 views
4

我只是在学习react-native,并且我有多个listview滚动问题。使用下面的示例代码,在我的android模拟器上,它根本不会滚动。将代码粘贴到React-native游乐场(https://rnplay.org/apps/AXOzjw)并在iOS模拟器上进行测试,如果我拉下它,它会在完成时滚动回顶部。反应本机listview不会滚动

我已经阅读了几个SO的答案,并且大多数人谈论没有flex:集合上的一个集合,但我很确定我已经设置好了。

'use strict'; 

var React = require('react-native'); 
var { 
    AppRegistry, 
    Image, 
    ListView, 
    TouchableHighlight, 
    StyleSheet, 
    Text, 
    View, 
} = React; 

var SampleApp = React.createClass({ 
    statics: { 
    title: '<ListView> - Simple', 
    description: 'Performant, scrollable list of data.' 
    }, 
    getInitialState: function() { 
     var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}); 
     var data = Object.keys(scores.games).map(function(k) { return scores.games[k] }); 
     return { 
     dataSource: ds.cloneWithRows(data), 
     }; 
    }, 

    render: function() { 
     return (
     <View style = {styles.maincontainer}> 
      <ListView contentContainerStyle={styles.list} 
      dataSource={this.state.dataSource} 
      renderRow={this._renderRow} /> 
     </View> 
    ); 
    }, 

    _renderRow: function(rowData: string, sectionID: number, rowID: number) { 
     return (
      <View> 
      <Text style={styles.item}> 
       {rowData.name} 
      </Text> 
      </View>); 
    }, 
}); 

var styles = StyleSheet.create({ 
    maincontainer: { 
    backgroundColor: 'blue', 
    flex: 1, 
    paddingTop:20, 
    paddingBottom:10, 
    flexDirection: 'column', 
    }, 
    list: 
    { 
    flexDirection: 'column', 
    flex:1, 
    }, 
    item: { 
    backgroundColor: 'lightgray', 
    margin: 3, 
    flex:1, 
    height: 60 
    } 
}); 

var scores = { 
    "games": [{ 
    "name": "1", 
    }, { 
    "name": "2", 
    }, { 
    "name": "3", 
    }, { 
    "name": "4", 
    }, { 
    "name": "5", 
    }, { 
    "name": "6", 
    }, { 
    "name": "7 ", 
    }, { 
    "name": "8 ", 
    }, { 
    "name": "9", 
    }, { 
    "name": "10", 
    }, { 
    "name": "11", 
    }, { 
    "name": "12", 
    }, { 
    "name": "13", 
    }] 
}; 

AppRegistry.registerComponent('SampleApp',() => SampleApp); 

module.exports = SampleApp; 

回答

5

相反的:

contentContainerStyle={ styles.list } 

只需使用:

style={ styles.list } 

得到它的工作here

+1

谢谢!这让我疯狂。只要SO允许,我会尽快接受答案。 –

+0

很高兴为你效劳! –

+0

@NaderDabit你的链接已损坏,你可以发布一个回购或解决方案的要点吗? –