最近在探索react-native式廷,加群聊沒人理我的問題就退了浓镜,百度起來坑多多,一萬只草泥馬路過例证,好了言歸正傳
看了上面兩張圖,驚奇發(fā)現(xiàn)我的”首頁“和”日歷“都加上了ScrollableTabView這個家伙迷捧,當(dāng)然了织咧,react-native-scrollable-tab-view這個組件你們要自己引入,百度一抓一大把漠秋,我就不多說了笙蒙。然后慢慢入坑,再慢慢調(diào)試到你突然發(fā)現(xiàn)有個需求庆锦,要做一個日歷手趣,左邊和右邊分別是當(dāng)前日期的前一個月和后一個月,就好像今天是2018年6月28日肥荔,左邊是前一個月包含了30條數(shù)據(jù)绿渣,右邊是后一個月也要30條數(shù)據(jù),雖然聽起來感覺有病燕耿,后面怎么可能有數(shù)據(jù)尼中符?后面都是放假通知嘛,怎么會沒有是吧誉帅。
不管是首頁還是日歷淀散,因為我們引入ScrollableTabView的時候都是同一個組件,所以我們只能到組件里面去改蚜锨,我們只需要修改\node_modules\react-native-scrollable-tab-view下的ScrollableTabBar.js档插,別的不動,其實就加上下面這一段代碼亚再。因為首頁和日歷都用到了這個組件郭膛,所以加了一個判斷,JSON.stringify(position.scrollValue)的數(shù)值要跟initialPage一樣氛悬,要不然就會出現(xiàn)問題则剃,我的initialPage是30耘柱,目前適配了多款iPhone。
componentWillUpdate(position,activeTab, scrollOffset, tabStyle) {
//this.props.underlineStyle.width =76.15;
if(JSON.stringify(position.scrollValue)==30){
const {activeTab, scrollOffset, tabStyle} = this.props;
const tabWidth = tabStyle.width || scrollOffset;
const onlyTabWidth = this.props.underlineStyle.width;
const containerWidth = WINDOW_WIDTH;
let newScrollX = (activeTab+1) * onlyTabWidth;
newScrollX -= (containerWidth) / 2- onlyTabWidth;
this.props.scrollValue.addListener(this.updateView);
this._scrollView.scrollTo({ x: newScrollX, y: 0, animated: false, });
}
},