[Delphi] FMXUI - 沉侵式狀態欄


好消息!FMXUI正式支持Android和IOS的沉侵式狀態欄了。

先來看看效果圖

安卓:

IOS:

一、Android 沉侵式狀態欄

FMXUI的沉侵式狀態欄支持SDK版本大於21的Android系統(也就是安卓5.0或更新的系統版本)。

第一步: 將 FMXUI 中的 res\android\styles_translucent.xml 加入 Deployment 中,並將 Remote Path 設為 “res\values-v19\”。

第二步: 在主 Form 的 Create 事件中,增加如下代碼:

procedure TForm1.FormCreate(Sender: TObject);
begin
  TFrameView.SetDefaultStatusColor($ff800080);
  TFrameView.SetDefaultBackColor($fff1f2f3);
end;

其中,SetDefaultStatusColor 是設置默認的狀態條顏色。SetDefaultBackColor 是設置默認的背景色。需要注意的是,如果不設置默認的背景色,那么在設置狀態條顏色后,默認的背景色為淺灰色(0xfff1f2f3)。

注意:在使用沉侵式狀態欄后,代碼中使用 LocalToAbsolute 來計算絕對位置對控件進行定位的地方如果出現異常,可以將Y坐標減去TView.GetStatusHeight(狀態條高度)。

 

二、iOS 沉侵式狀態欄

iOS實際上默認就是沉侵式狀態欄。它的狀態欄顏色就是當前窗體的 Fill 的顏色。

在 FMXUI 中,為了統一編碼,一樣需要 按照Android的方式的第二步進行操作

 

三、 設置主窗口Fill

如果通過上面兩步還不能實現,或者出來的狀態欄顏色異常,檢查 把主窗體的Fill參數的kind, 改為Solid 就可以 了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM