由于项目中需要用到react native tabBar联动,内容滑动到固定位置,哪个tab就选中,点击哪个tab,对应的内容也要滑到固定的位置。
这个对于native端,网上应该有很多实现的说明及demo,但对于RN端的实现,少之又少。具体效果类似淘宝详情页这样。
在做这个tabBar的过程中,融入了很多自己的思考和研究。
1.首先要滑动顺畅,需要用到ScrollView,涉及到帧率的检测。
scrollEventThrottle={20}
2.由于页面的内容是配置的,数据源的处理很重要,配置展示几个tab,就展示几个tab,当然这里最多支持四个tab的展示。
//每个tab的宽度都是固定的
//width:屏幕width
//paddingHorizontal:tabBar距屏幕左边的距离,涉及到屏幕适配的问题,小手机上要稍微小一点
//typeDataArr.length:tabBar个数
let tabWidth = (width - 2 * paddingHorizontal) / typeDataArr.length;
3.如果只有一个tab,向上滑动的过程中就不展示tab了。
/**
* ScrollV