控制FlatList的initialScrollIndex的视图位置

时间:2019-04-09 09:38:16

标签: react-native

我想开始列表的偏移量,但移动初始viewPosition。 FlatList当前显示的是当前图像+列表中的下一幅图像,而是希望显示当前图像+上一张图像。

我已经在使用initialScrollIndex,并且可以滚动显示图像了,但是我认为它在第一次安装时可能会显示一些破烂

这是我想要的项目上带有initialScrollIndex的图像。 screenshot

我想要的行为是使用initialScrollIndex并显示上一项而不是下一项。 screenshot

export default class App extends Component {
    flatList = null;

    componentDidMount() {
        setTimeout(() => {

            this.flatList.scrollToIndex({
                index: 3,
                animated: false,
                viewPosition: 1
            })
        }, 10)
    }

    setFlatList = (ref) => {
        this.flatList = ref;
    }

    getItemLayout = (_, index) => ({
        index,
        length: 600,
        offset: 600 * index
    });

    renderItem = ({ index }) => {
        const backgroundColor =
            index === 0 ? "blue" : index === 1 ? "red" : index === 2 ? "green" : index === 3 ? "yellow" : "white";
        return (
            <View style={{ height: 600, backgroundColor, width: 450, justifyContent: "center", alignItems: "center" }}>
                <Text>{`item${index}`}</Text>
            </View>
        );
    }

    render() {
        return (
            <View style={styles.container}>
                <View style={{ ...StyleSheet.absoluteFillObject }}>
                    <FlatList keyExtractor={(_, index) => `${index}`} getItemLayout={this.getItemLayout} ref={this.setFlatList} data={["yo", "1", "2", "3", "4"]} renderItem={this.renderItem} />
                </View>
            </View>
        );
    }

0 个答案:

没有答案