ChinaCock界面控件介紹-CCSystemBar


Android 4.4之后谷歌提供了沉浸式全屏體驗, 在沉浸式全屏模式下, 狀態欄、 虛擬按鍵動態隱藏, 應用可以使用完整的屏幕空間, 按照 Google 的說法, 給用戶一種 身臨其境 的體驗。而Android 5.0之后谷歌又提出了 ColorPalette 的概念,讓開發者可以自己設定系統區域的顏色,使整個 App 的顏色風格和系統的顏色風格保持統一。

在沒有CCSystemBar之前,用Delphi實現上面的功能,是件很麻煩的事情,前期的博文也有寫這方面的實現。現在這一切變的簡單了!

先看一下CCSystemBar的方法:

    procedure TranslucentStatusBar;

    function checkDeviceHasNavigationBar: Boolean;//檢查是否有底部的導航條
    function checkNavigationBarShow: Boolean;//檢查是否顯示了底部的導航行
    function getStatusBarPixelHeight(): Integer;//
    function getStatusBarPointHeight(): Single;//獲取StatusBar頂部狀態欄Point高度
    function getNavigationBarPixelHeight(): Integer;
    function getNavigationBarPointHeight(): Single;//獲取NavigationBar底部導航欄Point高度

了解了這個控件提供的方法,現在看看怎么具體使用:

1.拖一下控件到Form上,一般就是主Form了,然后再手工填加引用的單元:CC.VirtualKeyboard

2.放一個Toolbar,設置為Top,也可以用TRectangle,反正用一個可視控件,占用屏的頂部。接下來用CCSystemBar取得的狀態條的高度來設置Toolbar的內邊距:

AToolBar.Padding.Top := self.CCSystemBar1.getStatusBarPointHeight;

這是作者提供的例子使用的方法,也可以換用其他實現方式,比如:就用一個TRectangle來占用狀態條區域。

3.按上面的實現,同理處理底部導航條,放置一個Toolbar,Align設置為MostBottom。

procedure TMainForm.SetNavigationBarHeight(AToolBar: TToolBar);
begin
  if self.CCSystemBar1.checkNavigationBarShow then
  begin
    AToolBar.Height := self.CCSystemBar1.getNavigationBarPointHeight;
  end
  else
  begin
    AToolBar.Height := 0;
  end;
end;

看代碼,如果導航條顯示,則設置其高度為系統導航條的高度,反之,設置為0.

4.為了適應系統虛擬鍵盤的顯示與隱藏,我們還需要處理Form的FormVirtualKeyboardHidden及FormVirtualKeyboardShown事件:

procedure TMainForm.FormVirtualKeyboardHidden(Sender: TObject;
  KeyboardVisible: Boolean; const Bounds: TRect);
begin SetNavigationBarHeight(self.NavigationBar);
end;

procedure TMainForm.FormVirtualKeyboardShown(Sender: TObject;
  KeyboardVisible: Boolean; const Bounds: TRect);
begin SetNavigationBarHeight(self.NavigationBar);
end;

5.在Form.OnCreate事件中,初始化狀態條及導航條的高度:

procedure TMainForm.FormCreate(Sender: TObject);
begin
  self.CCSystemBar1.TranslucentStatusBar;//適應低版本的android,必須調用。
  SetStatusBarPadding(self.StatusBar);
  SetNavigationBarHeight(self.NavigationBar);

end;

6.發布配置文件:

打開Deployment窗口,如上圖,取掉自帶的styles.xml及styles-v21.xml,填加ChinaCock帶的對應文件。

啟動圖片換成loading.png發布,去掉系統自帶的splash_image_def.xml文件。

Ok,萬事大吉,運行app!

 

后記:

2020-04-01,需要注意,項目設置中,Include splash image必須勾選,如下圖:

 

 我因為這個問題,造成應用不正常顯示了!


免責聲明!

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



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