在 UniApp 中實現中間凸起 TabBar 的完整指南

如何在 UniApp 中設置中間 TabBar 凸起效果

在移動應用開發中,TabBar 是常見的導航組件,而中間凸起的 TabBar 按鈕則是一種流行的設計風格,常用于突出重要功能(如發布、拍照等)。UniApp 提供了 midButton 屬性,可以輕松實現這種效果。本文將詳細介紹如何在 UniApp 中配置中間凸起的 TabBar,并處理其點擊事件。


一、實現效果

我們將實現一個帶有中間凸起按鈕的 TabBar,效果如下:

  • 中間按鈕高度大于其他 TabBar 項,形成凸起效果。
  • 中間按鈕沒有 pagePath,需要通過監聽點擊事件自定義行為。
  • 其他 TabBar 項正常跳轉頁面。

二、配置 TabBar

pages.json 中配置 tabBar,具體代碼如下:

{"tabBar": {"color": "#b1b6bd", // 默認顏色"selectedColor": "#2E3A71", // 選中顏色"borderStyle": "black", // 邊框樣式"backgroundColor": "#fff", // 背景顏色"midButton": {"iconPath": "/static/images/communication/communication.png", // 中間按鈕圖標"height": "65px", // 中間按鈕高度(大于其他項高度)"iconWidth": "56px" // 圖標寬度},"list": [{"pagePath": "pages/home/home", // 首頁頁面路徑"iconPath": "static/images/home/home.png", // 默認圖標"selectedIconPath": "static/images/home/home_active.png", // 選中圖標"text": "首頁" // 文字},{"pagePath": "pages/notification/notification","iconPath": "static/images/notification/notification.png","selectedIconPath": "static/images/notification/notification_active.png","text": "客戶"},{"pagePath": "pages/shop/likeShop/likeShop","iconPath": "static/images/shop/shop.png","selectedIconPath": "static/images/shop/shop_active.png","text": "工單"},{"pagePath": "pages/my/my","iconPath": "static/images/my/my.png","selectedIconPath": "static/images/my/my_active.png","text": "我的"}]}
}

關鍵配置說明:

  1. midButton 屬性

    • iconPath:中間按鈕的圖標路徑。
    • height:中間按鈕的高度,設置為大于其他 TabBar 項的高度即可實現凸起效果。
    • iconWidth:圖標的寬度,高度會等比例縮放。
    • 注意:midButton 沒有 pagePath,需要通過監聽點擊事件自定義行為。
  2. list 屬性

    • 配置其他 TabBar 項的頁面路徑、圖標和文字。

三、監聽中間按鈕點擊事件

由于 midButton 沒有 pagePath,我們需要通過 UniApp 提供的 API uni.onTabBarMidButtonTap 監聽其點擊事件,并自定義行為。

在項目的入口文件(如 App.vue)中添加以下代碼:

<script>
export default {onLaunch() {// 監聽中間按鈕點擊事件uni.onTabBarMidButtonTap(() => {console.log('中間按鈕被點擊');// 自定義行為,例如跳轉到指定頁面uni.navigateTo({url: '/pages/publish/publish' // 跳轉到發布頁面});});}
};
</script>

關鍵點:

  1. uni.onTabBarMidButtonTap

    • 用于監聽中間按鈕的點擊事件。
    • 在回調函數中編寫自定義邏輯,例如跳轉到指定頁面。
  2. 跳轉頁面

    • 使用 uni.navigateTo 跳轉到目標頁面。
    • 如果需要跳轉到 TabBar 頁面,可以使用 uni.switchTab

四、注意事項

  1. 圖標尺寸

    • 中間按鈕的圖標尺寸需要根據設計稿調整,確保顯示效果符合預期。
  2. 凸起高度

    • midButtonheight 屬性決定了凸起的高度,建議根據實際需求調整。
  3. 兼容性

    • midButton 是 UniApp 提供的特性,確保使用的 UniApp 版本支持該功能。
  4. 自定義樣式

    • 如果需要更復雜的樣式(如背景圖、字體圖標等),可以通過 backgroundImageiconfont 屬性實現。

五、總結

通過 UniApp 的 midButton 屬性,我們可以輕松實現中間凸起的 TabBar 效果。關鍵步驟如下:

  1. pages.json 中配置 tabBar,設置 midButton 的高度和圖標。
  2. 使用 uni.onTabBarMidButtonTap 監聽中間按鈕的點擊事件,并自定義行為。
  3. 根據需求調整圖標尺寸、凸起高度等樣式。

希望本文能幫助你快速實現中間凸起的 TabBar 效果!如果有任何問題,歡迎留言討論。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/90533.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/90533.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/90533.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微觀低代碼

今日去深圳的一家工廠給客戶做培訓&#xff0c;主要培訓內容為低代碼產品的二開和功能演示。客戶使用了20年的ERP和OA系統&#xff0c;目前想對接到低代碼平臺。客戶目前想實現的主要功能是&#xff0c;對接OA的單點登錄&#xff0c;把ERP的功能遷移到低代碼平臺上來工廠規模比…

Linux進程控制:掌握系統的核心脈絡

Linux進程控制&#xff1a;掌握系統的核心脈絡 在 Linux 系統中&#xff0c;進程控制是系統運行的核心機制之一。無論是日常的命令行操作&#xff0c;還是復雜的后臺服務運行&#xff0c;都離不開對進程的管理和控制。本文將深入探討 Linux 進程控制的相關知識&#xff0c;幫助…

4N90-ASEMI電機控制專用4N90

編輯&#xff1a;LL4N90-ASEMI電機控制專用4N90型號&#xff1a;4N90品牌&#xff1a;ASEMI封裝&#xff1a;ITO-220ABRDS(on):3.60Ω批號&#xff1a;最新引腳數量&#xff1a;3封裝尺寸&#xff1a;如圖特性&#xff1a;N溝道MOS管工作結溫&#xff1a;-55℃~150℃一、卓越性…

Java 筆記 lambda

?Lambda 基本語法 (parameters) -> expression 或 (parameters) -> { statements }// 無參數 Runnable r () -> System.out.println("Hello");// 單個參數&#xff08;小括號可省略&#xff09; Consumer<String> c s -> System.out.println(s…

安全風險監測平臺:被動應對向主動預防的轉變

一、智能識別預警系統安全風險監測平臺通過部署多維度感知網絡&#xff0c;實現對各類安全隱患的智能識別與實時預警。系統采用深度學習算法&#xff0c;對人員行為、設備狀態、環境參數等進行全天候監測分析&#xff0c;建立動態風險評估模型。當檢測到異常情況時&#xff0c;…

圖片查重從設計到實現(2)Milvus安裝準備etcd介紹、應用場景及Docker安裝配置

etcd作用、應用場景及Docker安裝配置 在分布式向量數據庫 Milvus 的架構中&#xff0c;etcd 扮演著至關重要的角色。Milvus 用于存儲和管理海量向量數據&#xff0c;支持高效的相似性搜索等操作&#xff0c;而其分布式集群的正常運行高度依賴元數據的一致性和可靠性&#xff0c…

零彈窗干擾的貪吃蛇游戲,下載即玩

軟件介紹 在尋找貪吃蛇游戲的過程中&#xff0c;我發現了一款PC端版本&#xff0c;無需登錄即可直接使用&#xff0c;完全符合我的需求。 使用優勢 這款軟件最大的亮點在于完全免費&#xff0c;沒有任何廣告和彈窗干擾&#xff0c;支持完全離線運行&#xff0c;讓用戶能夠專注…

excel2013VBA開發access mdb數據庫系統的一點經驗分享

最近&#xff0c;自己從網盤里重新下載了過去保存的vba開發資料&#xff0c;就順手研究起了如何能通過excel203結合access 2013 mdb數據庫系統開發個VBA小系統。過簡單一說說了&#xff01;接說干貨經驗分享吧&#xff0c;1、俺先在mdb數據庫中建了一個有自動編號字段的數據表&…

我們能否承擔微服務帶來的復雜性和運維成本?

坦率地說&#xff0c;并非所有團隊都應該&#xff0c;承擔微服務帶來的復雜性和運維成本。在做出決定前&#xff0c;我們必須進行自我評估。 以下是評估是否能承擔微服務成本需要考慮的關鍵方面&#xff1a; 一、 復雜性帶來的挑戰 (Complexity Challenges):分布式系統固有復雜…

HCIP--MGRE實驗

一、實驗拓撲二、配置思路1、建立拓撲&#xff0c;配置IP&#xff0c;配置缺省路由是公網通暢2、路由器R1-R5,R2-R5,R3-R5之間都是串線鏈接&#xff0c;由于華為路由器默認的串線協議為PPP&#xff0c;因此根據實驗要求&#xff0c;R1-R5,R2-R5之間直接進行單向認證&#xff0c…

數字孿生映射探索驅動的具身導航!MorphoNavi:面向對象映射的空地機器人導航

作者&#xff1a; Sausar Karaf, Mikhail Martynov, Oleg Sautenkov, Zhanibek Darush, Dzmitry Tsetserukou單位&#xff1a;俄羅斯斯科爾科沃科學技術研究院智能空間機器人實驗室論文標題&#xff1a;MorphoNavi: Aerial-Ground Robot Navigation with Object Oriented Mappi…

統計與大數據分析與數學金融課程解析

CDA數據分析師證書含金量高&#xff0c;適應了未來數字化經濟和AI發展趨勢&#xff0c;難度不高&#xff0c;行業認可度高&#xff0c;對于找工作很有幫助。一、課程體系對比矩陣維度統計與大數據分析數學金融交叉領域數學基礎概率論(90%)隨機過程(85%)線性代數(100%)核心工具P…

整蠱小程序:關機程序(C語言)

整蠱小程序&#xff1a;關機程序&#xff08;C語言) 跟著潼心走&#xff0c;輕松拿捏C語言&#xff0c;困惑通通走&#xff0c;一去不回頭~歡迎開始今天的學習內容&#xff0c;你的支持就是博主最大的動力。 目錄 整蠱小程序&#xff1a;關機程序&#xff08;C語言) 程序內容…

PHP框架之Laravel框架教程:1. laravel搭建

1. laravel搭建 本教程適合有php基礎的同學學習 安裝方式一&#xff1a; 使用 Laravel 安裝器&#xff1a; 需要本地先安裝PHP 和 Composer&#xff0c;這個自行安裝下。 安裝完成后驗證方式&#xff1a; // 終端輸入&#xff0c;就可以看到結果 php --version composer --vers…

HMC7044芯片配置(圖文+解析+代碼仿真)

詳細代碼及仿真源文件已同步上傳至個人主頁資源&#xff08;原創不易&#xff0c;轉載請注明出處&#xff09; 目錄 模塊圖 代碼實現 時序圖 仿真圖 HMC7044介紹 一、概述 HMC7044是帶有 JESD204B 接口的高性能、3.2 GHz、14 路輸出抖動衰減器&#xff0c;提供 14 路低噪…

Dify開發教程筆記(一): 文件及系統參數變量說明及使用

開始 Copy page 定義“開始” 節點是每個工作流應用&#xff08;Chatflow / Workflow&#xff09;必備的預設節點&#xff0c;為后續工作流節點以及應用的正常流轉提供必要的初始信息&#xff0c;例如應用使用者所輸入的內容、以及上傳的文件等。 配置節點在開始節點的設置頁…

iOS 26,雙版本更新來了

7 月 25 日&#xff0c;蘋果終于給用戶推送了 iOS 26 的首個公測版本。參與了公測版計劃的小伙伴在軟件更新頁面選擇 iOS 26 Public Beta 就能升級 iOS 26 的公測版。同時蘋果還推送了 iOS 26 Beta 4 的第二個版本 。也就是說之前已經升級了 iOS 26 Beta 4 的小伙伴&#xff0c…

什么是JSON,如何與Java對象轉化

JSON概念 JSON (JavaScript Object Notation) 是一種輕量級的數據交換格式。它易于人閱讀和編寫&#xff0c;同時也易于機器解析和生成。JSON 基于 JavaScript&#xff08;ECMAScript&#xff08;歐洲計算機協會制定的js規范&#xff09;&#xff09; 編程語言的一個子集&…

從零開始的云計算生活——第三十六天,山雨欲來,Ansible入門

目錄 一.故事背景 二.Ansible簡介 什么是Ansible&#xff1f; Ansible的特點 Ansible的架構 三.Ansible任務執行解析 ansible任務執行模式 ansible執行流程 ansible命令執行過程&#xff08;重要&#xff09; 四.Ansible配置解析 ansible的安裝方式 ansible的程序結…

【6G新技術探索】AG-UI(Agent User Interaction Protocol) 協議介紹

博主未授權任何人或組織機構轉載博主任何原創文章&#xff0c;感謝各位對原創的支持&#xff01; 博主鏈接 本人就職于國際知名終端廠商&#xff0c;負責modem芯片研發。 在5G早期負責終端數據業務層、核心網相關的開發工作&#xff0c;目前牽頭6G技術研究。 博客內容主要圍繞…