反应原生。 listview无法在滚动视图中滚动。 (iOS工作,但不是android)

时间:2016-10-14 01:33:51

标签: reactjs react-native

[React Native android]任何人都知道如何在滚动视图中嵌入listview滚动?它适用于iOS,但不适用于Android。

N

1 个答案:

答案 0 :(得分:1)

这不是正确的方法。即使你设法做到这一点,这也是一种不好的做法。请记住,ScrollView和ListView之间的主要区别在于ListView仅呈现可见项并对其进行回收以优化内存使用。通过在ScrollView中添加ListView,您可能会“破坏”此功能。

不要尝试在ScrollView中添加ListView,而只使用具有不同类型项目的ListView。一些事情:

export default class MyListComponent extends Component {
    constructor(props) {
        super(props);

        const ds = new ListView.DataSource({ rowHasChanged: (r1, r2) => r1 !== r2 });
        this.state = {
            dataSource: ds.cloneWithRows(this.props.data)
        };
    }

    render() {
        return (
            <ListView
                enableEmptySections={true}
                dataSource={this.state.dataSource}
                renderRow={(rowData) => this._getViewForType(rowData)}/>
        );
    }

    _getViewForType(rowData) {
        switch (rowData.renderType) {
            case 'type1':
                return <Text>test1</Text>
            case 'type2':
                return <Text>test2</Text>
            default:
                // Render your normal/default listview item here.
                return ...
        }
    }
}

现在,在渲染此视图之前,您只需要在项目列表中添加两个额外项目:一个类型为“type1”,另一个类型为“type2”。