本文将介绍从零开始实现一个 React Native 版本的九宫格抽奖转盘,先看最终效果图
也可以直接使用react-native-super-lottery组件开发抽奖功能。
一、布局
布局很简单,我们可以采用flex 3行布局,也可以单行、配合flex-wrap子控件自动折行实现。直接上代码
const LotteryStyle = StyleSheet.create({
container: {
flexDirection: 'row',
flexWrap: 'wrap',
justifyContent: 'center',
}
});
const img_width = 100; // 图片的宽度
const img_height = 80; // 图片的高度
// 观察上图的转盘,会发现存在三种类型的宫格
// 当前被高亮的宫格(增加了蒙层效果) , 正常的功能,以及正中心可以被点击的宫格
// 在真实的情况里,就需要根据 item、 index、 highLightIndex 等参数处理不同的宫格效果
// 具体可以参考本文最后开源的抽奖组件
function renderItem(item, index, highLightIndex) {
const { url } = item;
return <Image style={
{ width, height }}