【问题标题】:How to use ActivityIndicator with FlatList in react-native?如何在 react-native 中使用 ActivityIndi​​cator 和 FlatList?
【发布时间】:2021-09-14 17:48:41
【问题描述】:

我有一个 FlatList 组件,它具有使用 RefreshControl 处理刷新的 refreshControl 属性。如何在此处使用 ActivityIndi​​cator 而不是 RefreshControl。

 return (


        <View style={styles.container}>

            <FlatList
                data={data}
                renderItem={({ item }) => {
                    return renderData(item)

                }}
                refreshControl={<RefreshControl
                    colors={["#9Bd35A", "#689F38"]}
                    refreshing={loading}
                    onRefresh={loadData()} />}

                keyExtractor={item => `${item.id}`}



            />
            <FAB
                style={styles.fab}
                small={false}
                icon="plus"
                onPress={() => navigation.navigate('Create')}

            />
        </View>
    )
}

【问题讨论】:

    标签: react-native react-native-flatlist


    【解决方案1】:
    <Flatlist 
     data={data}
     renderItem={({ item }) => {return renderData(item)}}
     ListEmptyComponent={()=>{
     if(loading){
     return <ActivityIndicator animating size="large" color="red" />
     }
     return <Text>data is empty</Text>
     }}
     refreshControl={<RefreshControl
                        colors={["#9Bd35A", "#689F38"]}
                        refreshing={loading}
                        progressViewOffset={loading?-200:0} 
                        onRefresh={()=>{
                         setData(null);
                         loadData()}} 
                      />}
    
    />
    

    【讨论】:

    • 谢谢!但是使用此方法也可以看到默认值。如何摆脱它?
    • 如果刷新道具被移除然后拉刷新不起作用
    • progressViewOffset 设置为负值也会发生同样的情况
    • 有很多方法,比如让它成为绝对样式,或者使用变换将它隐藏在屏幕之外
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 2017-06-10
    • 2018-04-14
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多