flutter 项目在小米 Pad 分屏的时候会直接白屏

22 天前
 dai269619118

有用户反馈小米在应用分屏的时候会白屏。

就买了一个设备做测试。

开始测试的时候发现有些页面正常,有些是白屏。

后面找到了原因:

return Scaffold(
  appBar: AppBar(
    title: Text('Account'),
  ),
  backgroundColor: Theme.of(context).colorScheme.surfaceVariant,
  body: Text('Account'),
);

只要存在 appBar ,在分屏的时候就会白屏。

原本以为是我产品使用了大量组件是不是有其他兼容的问题

直接重新创建一个新的 flutter 项目,demo 里只要存在 appBar 也是白屏。

这么重要的组件小米竟然有兼容问题,有点离谱...

网上搜了下解决方案 要对每个文件加兼容代码,也没继续尝试。

这样每写一个组件都要加这个兼容代码 这也太恶心了。

不知道大家有没有好的解决方案。

2216 次点击
所在节点    程序员
18 条回复
anbabubabiluya
22 天前
我这有的 flutter 应用是小窗白屏,但是分屏正常,更新系统后就这样了,上一个系统版本是正常的,应该是小米系统的问题
murmur
22 天前
这就奇怪了,flutter 就是个 canvas ,小米怎么兼容啊,要是 rn 还可以怪一下小米
irrigate2554
22 天前
给 flutter 官方和小米官方都提交一下 bug 吧
dai269619118
22 天前
@anbabubabiluya 是的 老版本不会 好像是 flutter 的 ui 更新到 m3 之后出现的
dai269619118
22 天前
@irrigate2554 嗯嗯 我去反馈下
DiamondYuan
22 天前
是不是可以设置 app 不允许分屏? 这样 bug 就不会出现了
Gilfoyle26
22 天前
《要对每个文件加兼容代码》那还不如写原生了
aaronzhang404
22 天前
小米 15pro
2.0.206
flutter 3.27.2
复现

如果是小米的骁龙 elite ,flutter 使用 Impeller‌会出现渲染问题,需要改回 skia 。VIVO 的 elite 没有问题。
duanxianze
22 天前
赞同 2 楼,这玩意小米要怎么兼容啊
realpg
22 天前
@murmur #2
@duanxianze #9
遇事不决先喷小米就是政治正确嘛...
别的厂怎么不出问题.jpg
NoManPlay
22 天前
想起来前几天看的 小米看海绵宝宝导致死机,最后是底层 api 的问题
https://www.bilibili.com/video/BV1c5NxzqEpa
dai269619118
22 天前
@duanxianze
@realpg
@NoManPlay
不知道你们做过 flutter 开发没
这是一个非常基础的组件
appabr 几乎每个页面都会用到
在大部分设备下没兼容问题,更不要提原生安卓了
小米部分系统版本下跑不起来
那我觉得是小米系统的问题
这逻辑应该没问题
xkeyC
22 天前
WebKit
22 天前
这个就很奇怪。flutter 按理说 手机系统是不需要做任何兼容的。flutter 是完全自绘制 UI 的。感觉应该是使用了 Impeller‌ 造成的。不如回退到 skia 试试
v2demo
22 天前
在 android 项目里面集成下 androidx.window:window:x.x.x 试试
qianxaingmoli
22 天前
dai269619118
22 天前
@qianxaingmoli
@xkeyC 他遇到的问题 和我的很像 应该是属于同一类问题
dai269619118
22 天前
@v2demo 谢谢 我去加下试试看

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1140342

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX