好消息!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 就可以 了。

[Delphi] FMXUI - 沉侵式状态栏的更多相关文章

  1. [Flutter] Android沉侵式标题栏顶部叠加层去除

    可能你的app是这样: 框起来部分和标题栏颜色并不一致. 调用下面的代码可以变成一样. import 'package:flutter/services.dart'; static SystemUiO ...

  2. Android中的沉浸式状态栏效果

    无意间了解到沉浸式状态栏,感觉贼拉的高大上,于是就是试着去了解一下,就有了这篇文章.下面就来了解一下啥叫沉浸式状态栏.传统的手机状态栏是呈现出黑色条状的,有的和手机主界面有很明显的区别.这一样就在一定 ...

  3. 分别用ToolBar和自定义导航栏实现沉浸式状态栏

    一.ToolBar 1.在build.gradle中添加依赖,例如: compile 'com.android.support:appcompat-v7:23.4.0' 2.去掉应用的ActionBa ...

  4. 81.Android之沉浸式状态栏攻略

    转载:http://blog.csdn.net/lmj623565791/article/details/48649563/ 一.概述 近期注意到QQ新版使用了沉浸式状态栏,ok,先声明一下:本篇博客 ...

  5. android沉浸式状态栏设置(4.4以上版本)

    其实设置比较简单,我用了小米和htc的几款机型都可以用. 主要代码就是这个(注意要在Activity的setContentView之前调用才行) /** * 开启沉浸式状态栏 * */ public ...

  6. Android 沉浸式状态栏 实现方式二 ( 更简单 )

    以前写过一个沉浸式状态栏 的实现方式 Android 沉浸式状态栏 实现方式一 现在有个更为简单的实现方式 . 相关链接 http://www.apkbus.com/forum.php?mod=vie ...

  7. Android 4.4沉浸式状态栏的实现

    要实现Android 4.4上面的沉浸式状态栏要用到开源项目SystemBarTint(https://github.com/hexiaochun/SystemBarTint) public clas ...

  8. Android 中沉浸式状态栏实现

    Android 中沉浸式状态栏实现方式如下 计算状态栏高度及调用沉浸式状态栏的相关API方法 package com.example.status; import android.annotation ...

  9. Android 沉浸式状态栏

    1,传统的手机状态栏是呈现出黑色或者白色条状的,有的和手机主界面有很明显的区别.这样就在一定程度上牺牲了视觉宽度,界面面积变小.看一下QQ的应用 2,实现起来也挺简单的,来一起看一下吧 MainAct ...

随机推荐

  1. node的开发者环境设置丢失

    1.我看到的最简单的一种:evn 默认的值是  development var app = express(); if (app.get('env') === 'development') { req ...

  2. 处理XML Publisher导出EXCEL值变为科学计数法的问题

    <fo:bidi-override direction="ltr" unicode-bidi="bidi-override"><?PoOrde ...

  3. javascript浅拷贝和深拷贝

    /* 浅拷贝 */ function extend(parent, child) { var i; child = child || {}; for (i in parent) { if (paren ...

  4. VS2013命令行界面查看虚函数的内存布局

    内存布局可能使用vs的界面调试看到的旺旺是一串数字,很不方便,但是vs的命令行界面可以很直观的显示出一个类中具体的内存布局. 打开命令行.界面如下所示: 测试代码如下所示: class Base1 { ...

  5. Alpha冲刺 (4/10)

    前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/9979357.html 作业博客:https://edu.cnblogs.com/campus/ ...

  6. 是用TOP关键字对COUNT性能优化

    在对大数据量进行检索或者分页的时候需要计算命中记录数大小,一般情况下我们可以直接COUNT得到结果,但是当结果集很大的时候(比如1万以上)具体结果值已经不重要了.没有人真的翻阅1万条记录,比如百度,你 ...

  7. iOS-----简易地CocoaAsyncSocket使用

    CocoaAsyncSocket使用 代理的.h文件 //GCDAsyncSocketDelegate执行代理对象 #import <Foundation/Foundation.h> #i ...

  8. OpenCV - Linux(Ubuntu 16.04)中安装OpenCV + OpenCV_Contrib

    近两个月来接触了Linux系统,在老板的建议下翻了Ubuntu的牌子,我安装的版本是16.04,用习惯之后感觉蛮好的,比Windows要强.好啦,废话不说啦,下面开始说在Ubuntu中安装OpemCV ...

  9. 【java基础】java关键字final

    谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.下 ...

  10. 世界级的开源项目:TiDB 如何重新定义下一代关系型数据库

    著名的开源分布式缓存服务 Codis 的作者,PingCAP 联合创始人& CTO ,资深 infrastructure 工程师的黄东旭,擅长分布式存储系统的设计与实现,开源狂热分子的技术大神 ...