知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
您當前位置>首頁 » 新聞資訊 » 小程序相關(guān) >
小程序自定義tabbar踩坑記
發(fā)表時間:2021-1-8
發(fā)布人:葵宇科技
瀏覽次數(shù):84
我們是為了實現(xiàn)小程序中多個tabbar的效果的。用戶進首頁的時候,是一個tabbar,在進入到另外的頁面的時候,底部的tabbar顯示的是另外的一個。這樣可以更好的讓用戶瀏覽到不同的內(nèi)容。有點類似于一個主小程序中嵌套了一個子小程序。
我們在做這個之前,是有看過其它小程序做的一些效果的。比如小米lite和攜程的小程序。
他們的實現(xiàn)的方式是一樣的,就是做一個tabbar的自定義組件,然后跳轉(zhuǎn)每個頁面的時候用wx.navigateTo方法去跳轉(zhuǎn)。這樣是能實現(xiàn)多個tabbar的,當然也是有一些問題的,因為 navigateTo和switchTab的頁面加載效果是不一樣的。navigateTo是有一個頁面的過渡效果的,有一個新頁面整體從右側(cè)滑出的動畫。但是switchTab是直接出頁面的。因為在tabbar上的頁面,往往就是需要經(jīng)常打開的頁面,如果有一個跳轉(zhuǎn)頁面的滑出動畫是會影響用戶體驗的。所以我們把這個方案做為了一個備選方案。
其實微信官方是有一個自定義tabbar的,我們的方案是基于官方的自定義tabbar完成的。
我們新建一個js文件用來管理多個tabbar的狀態(tài)。在router層做了判斷,當進入需要顯示另一個tabbar的時候,改變這個全局的狀態(tài),并且setdata讓新的tabbar顯示在視圖層上。就是要中心化的管理tabbar的狀態(tài)。
必須在根目錄下的指定文件夾
這個自定義tabbar組件必須放在根目錄的custom-tab-bar 文件夾下。這樣才能被識別。
當我第一次把官方的例子稍加修改,移植到我們的小程序上的時候,發(fā)現(xiàn)tabbar會在真機上,在點擊tabbar上圖標的時候,上下跳動。當時也差點因為這個原因放棄這個方案。然后在之后的摸索中發(fā)現(xiàn),官方的例子用的是<cover-view>
和<cover-image>
,改成<view>
和<image>
標簽以后,就沒有這種跳動了。當然換為view和image的后,層級會變低,所以要記得給tabbar設置高的層級,否則會被別的內(nèi)容擋到。
iphonex以上手機因為底部有一個小橫條,所以iPhonex以上手機的tabbar的高度是比較高和其它的手機是不一樣的。微信小程序原生的tabbar是有這個高度適配的,但是如果換成自定義的tabbar就需要自己適配了。需要自己做一下高度的適配。而且要注意一下開發(fā)者工具和真實機型的差距。開發(fā)者工具顯示iphonex上的tabbar的樣子并不是真實機型中看到的,需要注意一下。
以前在用原生tabbar的時候,有微信的api可以全局的改變某個item上面的數(shù)字和小紅點。這樣在做像購物車上小紅點數(shù)量改變的時候就可以用這個api。但是在使用了自定義tabbar的時候,就需要自己更新item上的數(shù)量或小紅點了。而且是全局更新,因為可能在沒有tabbar的頁面也需要更新。為了實現(xiàn)全局更新,開始沒有想到很好的辦法,最開始是把tabbar這個組件的setdata方法存到app.js中,然后在需要更新的時候調(diào)用setdata。但是這個方法不太好,之后在跟組長討論后,提示可以用eventhub了。在tabbar的js中來監(jiān)聽數(shù)量的改變,在需要改變數(shù)量的地方,觸發(fā)這個event,這樣就實現(xiàn)了全局的數(shù)量更新。
因為我們的頁面在tabbar上面,只能用switchtab的方法去跳轉(zhuǎn)到這個頁面,但是小程序的switchtab方法是無法帶參數(shù)的(我其實不太理解為什么不能帶參數(shù),但是從二維碼或者分享進入tabbar上的頁面,又是可以帶參數(shù)的),我們采用的方法是我們有一個router工具,當檢測到要跳到需要帶參數(shù)的頁面的時候,就把解析到的參數(shù)加到storage中,然后在頁面的onshow的方法中獲取。
自定義tabbar支持的小程序基礎庫版本是2.5.0,所以我們需要注意一下老基礎庫版本的兼容性問題。在低基礎庫的小程序上,自定義tabbar是可以在小程序的后臺設置最低的基礎庫要求。
因為在切換tab的時候,必須setdata,所以肯定有閃動的,這個目前還沒有找到很好的辦法。
小程序自定義tabbar這個特性,感覺使用的小程序也不是很多。我們先進行了一些踩坑,也希望可以幫到使用這個特性的小程序。
作者:努力的Jerry
來源:掘金
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
相關(guān)案例查看更多
相關(guān)閱讀
- 網(wǎng)站制作哪家好
- 汽車報廢回收軟件
- 云南網(wǎng)站優(yōu)化公司
- 小程序被攻擊
- 網(wǎng)站建設案例
- 貴州小程序開發(fā)
- 公眾號模板消息
- 云南網(wǎng)站建設快速優(yōu)化
- 云南網(wǎng)站建設費用
- 云南手機網(wǎng)站建設
- 百度小程序開發(fā)公司
- 英文網(wǎng)站建設公司
- 云南企業(yè)網(wǎng)站
- 網(wǎng)站建設首選
- 昆明小程序公司
- 報廢車管理
- 云南科技公司
- 搜索引擎排名
- 百度小程序開發(fā)
- 小程序被騙退款成功
- 網(wǎng)站建設方案 doc
- 小程序定制
- 云南電商網(wǎng)站建設
- 大理網(wǎng)站建設公司
- 汽車回收系統(tǒng)
- 網(wǎng)站小程序
- 汽車報廢管理
- 小程序退款
- 商標
- 智慧農(nóng)貿(mào)市場