使用 stickyHeaderIndices 时,组件样式发生变化

When stickyHeaderIndices is used, style of component changes

我搜索了常见问题以及如何使用stickyHeaderIndices等等。但是纠结了一点,我也没找到为什么会这样,所以网上搜不到。

在网络上一切正常,但在我的 phone 上使用粘性时却不行。

我的滚动视图结构:

<ScrollView stickyHeaderIndices={[0]} style={styles.layout}>
    <View style={styles.topBar}>
       <Text style={styles.title}>Messages</Text>
       <View style={styles.notificationIcon}>
          <Text style={styles.notificationIconTxt}>{notificationCount}</Text>
       </View>
    </View>
    <ChatItem pairingCategory={'Name'} />
</ScrollView>

我想置顶的视图:

如果我使用上面的结构,它会粘在顶部但组件的样式会发生变化(如下图所示),我希望气泡留在文本旁边。

这是我的风格:

const styles = StyleSheet.create({
    layout: {
        flex: 1,
        backgroundColor: colors.lightBg
    },
    topBar: {
        backgroundColor: colors.lightBg,
        paddingVertical: 15,
        paddingLeft: 24,
        flexDirection: 'row',
        flexWrap: 'nowrap',
        alignItems: 'center',
    },
    title: {
        fontSize: 32,
        marginRight: 8,
    },
    notificationIcon: {
        borderRadius: 15,
        justifyContent: 'center',
        alignItems: 'center',
        width: 30,
        height: 30,
        backgroundColor: colors.mainBg,
        padding: 5
    },
    notificationIconTxt: {
        color: 'white',
        fontWeight: "700"
    }
})

每当我删除 stickyHeaderIndices 时,topBar 视图似乎都是我想要的方式,但不会固定在顶部。 为什么会发生,我能做些什么来解决它?

已解决!

我仍然不知道,这是什么原因,但创建了名为 ChatListTopBar 的新组件,然后包装了我的第一个子视图。

function ChatListTopBar({notificationCount}) {
    return (
        <View style={styles.topBar}>
            <Text lineBreakMode='false' style={styles.title}>Mesajlar</Text>
            <View style={styles.notificationIcon}>
                <Text style={styles.notificationIconTxt}>15</Text>
            </View>
        </View>
    )
}
//ScrollView section seems so
<ScrollView stickyHeaderIndices={[0]} style={styles.layout}>
   <ChatListTopBar notificationCount={notificationCount} />
   <ChatItem pairingCategory={'Name'} />
</ScrollView>

这样替换,问题刚刚解决!