• 資料介紹
    • 1、前言
    • 2、實現(xiàn)原理
    • 3、實現(xiàn)方法
    • 4、總結
  • 資料預覽
  • 相關推薦
申請入駐 產業(yè)圖譜

LAT1417 TouchGFX實現(xiàn)Home鍵返回主頁

03/17 09:36
1034
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

LAT1417 TouchGFX實現(xiàn)Home鍵返回主頁

303.52 KB

1、前言

當用戶界面層數(shù)較多時,通過層層回歸的方式返回主頁不夠方便;如果在每個頁面都設置一個返回按鈕,又會增加 UI 設計復雜度。

如果使用一個物理按鍵作為 Home 鍵,無論處于任何界面,都可通過這個按鍵返回到主頁;此物理按鍵僅需要一個 GPIO。下面介紹通過 TouchGFX 實現(xiàn)此功能的原理及方法。

2、實現(xiàn)原理

TouchGFX 基本架構為 Model-View-Presenter(MVP)(參考以下章節(jié)的鏈接 ModelView-Presenter 設計模式 | TouchGFX Documentation 獲取更多信息),Model 類具有指向當前活動的 Presenter 指針。當 Model 檢測到變化時,會將變化通知當前活動Presenter,上述動作通過 ModelListener 接口中的方法來完成。

對于通過按鍵返回主頁的需求,我們可以在 Model 中檢測按鍵的變化,由于 Model 類具有指向當前活動的 Presenter 指針,因此可以將按鍵的變化通過 ModelListener 通知給當前活動 Presenter,Presenter 調用對應 View 中的屏幕切換方法,即可實現(xiàn)立即回歸主頁。由于存在多個 Presenter,因此在按鍵觸發(fā)的時刻,活動的 Presenter 可能是任何一個;所以除主頁之外,其余 Presenter 都要單獨實現(xiàn)對應 View 中切屏方法的調用。

3、實現(xiàn)方法

假設我們共有三屏內容,Screen1 為主頁,另外兩屏為 Screen2 和 Screen3。

(1) 對按鍵 IO 進行初始化設置。

(2) 在 ModelListener.hpp 中實現(xiàn)一個處理切屏的虛函數(shù)。

(3) 在 Model 中實現(xiàn)當按鍵按下時通過 modelListener 調用這個函數(shù)。

(4) 在 Screen2View.hpp 中實現(xiàn)實際處理切屏的方法。

(5) 在 Screen2Presenter.hpp 中 class Presenter 的派生類 class Screen2Presenter中聲明與 ModelListener.hpp 中虛函數(shù)同名的函數(shù)名(函數(shù)的多態(tài))。

(6) 在 Screen2Presenter.cpp 中對這個函數(shù)進行重寫,并實現(xiàn)對應 view 中實際切屏方法的調用。

(7) 對于 Screen3 或有更多的 Screen,如上述 Screen2 的(4)、(5)、(6)相關操作,這樣在按鍵按下時,無論哪個 Screen 處于有效狀態(tài),都能執(zhí)行相關的切屏操作。如果希望在某個頁面中 Home 鍵不觸發(fā)切屏操作,只需在其對應的 Presenter和 View 中不做處理即可。

另外,在 View 中實現(xiàn)切屏是調用 changeToStartScreen()實現(xiàn)的,這種方法沒有動畫效果;如果想加入動畫效果,如以 Wipe 的方式從下方切入,可以在 TouchGFX Designer 的主頁 Screen1 中添加一個不帶 Trigger 的 Interaction,將 changeToStartScreen()替換成FrontedApplicationBase.cpp 中的切屏方法 gotoScreen1ScreenWipeTransitionSouth(),即可將切屏效果帶入。

4、總結

本文闡述了如何基于 TouchGFX 的 MVP 架構,實現(xiàn)物理 Home 按鍵控制返回主頁的功能及方法。通過這一實際應用案例,可以讓用戶更深入的理解 MVP 的設計模式。

資料預覽

相關推薦