import { useState, useRef } from 'react'
import { FlatList, View, Text, StyleSheet, TouchableOpacity } from 'react-native'
const Center = () => {
const tabs = ["语文", "数学", "英语", "政治", "历史", "地理"]
const [active, setActive] = useState(0)
const flatRef = useRef()
const activeTab = (index) => {
setActive(index)
flatRef.current.scrollToIndex({ viewPosition: 0.5, index: index, animated: true })
}
return (
<>
<View style={styles.nav}>
<FlatList data={tabs} ref={flatRef} horizontal showsHorizontalScrollIndicator={false}
renderItem={({ item, index }) => (
<TouchableOpacity key={index} onPress={() => activeTab(index)}
style={[
styles.nav_item,
active == index && styles.nav_item_active,
tabs.length - 1 == index && styles.nav_item_last
]}>
<Text style={active == index && styles.nav_item_active_text}>
{item}
</Text>
</TouchableOpacity>
)}
/>
</View>
</>
)
}
const styles = StyleSheet.create({
nav: {
height: 45,
flexDirection: "row",
alignItems: "center",
borderBottomColor: "#eee",
borderBottomWidth: 1,
paddingHorizontal: 10
},
nav_item: {
paddingHorizontal: 20,
paddingVertical: 4,
borderColor: "#DADCE2",
borderWidth: 1,
borderRadius: 20,
alignItems: "center",
justifyContent: "center",
marginRight: 10
},
nav_item_last: {
marginRight: 0
},
nav_item_active: {
backgroundColor: "#2C72FF",
borderColor: "transparent",
},
nav_item_active_text: {
color: "#ffffff"
}
})
export default Center
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有