使用 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>
这样替换,问题刚刚解决!
我搜索了常见问题以及如何使用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>
这样替换,问题刚刚解决!