如何让 Flutter 应用在​​ android 导航栏后面绘制并使导航栏完全透明?

技术标签:

【中文标题】如何让 Flutter 应用在​​ android 导航栏后面绘制并使导航栏完全透明?【英文标题】:How to make flutter app draw behind android navigation bar and make navigation bar fully transparent?【发布时间】:2019-10-29 16:21:20【问题描述】:

我想让我的 Flutter 应用在​​android中占据整个屏幕,同时仍然显示状态栏和导航栏,并且它们都是透明的,以实现ios中的全屏外观。

状态栏颜色可以轻松更改,但现在我遇到了让应用填满屏幕并同时使导航栏透明的问题。

默认情况下,应用根本不绘制在导航栏下方(我已将状态栏颜色设置为透明):

以下是我尝试过的一些解决方案:

1) 在MainActivity的onCreate函数中设置窗口的flags

从这里获取的解决方案:https://***.com/a/31596735

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) 
  window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, 
    WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)

这种实现了我想要的,但它有几个问题。 MediaQuery 中的 padding 和 inset 值现在为 0,因此我必须通过使用 MethodChannel 手动获取状态栏和导航栏高度。此外,这会产生一个关于应用程序切换器的奇怪错误,如下所示(查看内容如何跳转和右上角的调试横幅被拉伸):

2) 在styles.xml中添加半透明导航

<item name="android:windowTranslucentNavigation">true</item>

结果:

这是最接近我想要实现的目标。 MediaQuery.of(context).padding.top

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值