開發中遇到一個業務需求,需要把頁面頂部、底部固定,中間的scroll-view內部滾動。要滿足這個需求,需要根據屏幕高度計算中間的scroll-view高度。結果悲催地發現,使用
wx.getSystemInfo拿到的windowHeight居然不一致:
1、在ios中,windowHeight是屏幕高度-底部TabBar的高度
2、在android中,windowHeight是屏幕高度
百度到的大部分說法是,這是小程序在android平台的bug。需要注意調用wx.getSystemInfo的時機。但是試了在onLoad、onReady、onShow里調用都不行。最后,只好用土辦法了,先判斷什么平台,再根據平台來處理:
//設置滾動區域高度 wx.getSystemInfo({ success: function (rSys) { //屏幕-導航的高度 var winHeight = rSys.windowHeight-5; if(rSys.platform=="android") winHeight-=45; ....... me.setData({ scrollViewHeight: winHeight - navBottom }); }); } });