有在用 flutter 的朋友吗,官方为何连这样基础的功能都不支持?

1 天前
 renchong
如图,flutter 可以从底部弹出一个 Sheet ,但是无法使用手势从上到下滑动关闭这个 Sheet



我还以为我代码有问题,结果发现 6 年前就有人提出这个 issue
https://github.com/flutter/flutter/issues/36283

直到现在也没有解决,有点难理解为啥这样基础的功能官方居然不支持。

issue 底下已经有老哥开喷了:
“我用 Flutter 开发了一个项目,大概一个月了。现在因为这个问题,我不得不把整个项目用 Swift 重写一遍。六年了,官方团队竟然一直没理会。
警告:不要将 Flutter 用于严肃的应用程序。否则最终你会付出代价。”
2763 次点击
所在节点    程序员
37 条回复
auhah
1 天前
你想要的是不是这个组件 showModalBottomSheet
renchong
1 天前
@auhah 就是这个组件有这个问题,还有 showBottomSheet ,这类组件都有这个问题
kenxu2023
1 天前
我的一个应用就用了`showModalBottomSheet`组件,是可以滑动关闭的啊,难道是平台的问题? Android 和 Web 都是可以的
renchong
1 天前
@kenxu2023 如果一个 BottomSheet 中有可滚动内容,例如 listview ,就无法滑动关闭
phcbest
1 天前
在安卓原生平台上滑动冲突一直是开发者自己解决的
renchong
1 天前
@phcbest 安卓原生支持这个功能
yuchen198
1 天前
@renchong 并没有,我用的 showModalBottomSheet ,布局里有类似 ListView 的滚动视图,是可以往下拖动关闭的
bitvector
1 天前
可以在 ScrollEndNotification 中检测滑动距离来关闭。我用 DraggableScrollableSheet+CustomScrollView 来实现底部弹出的列表,交互没有太大问题。

选择了 flutter ,还是要多发挥自己的想象力
lumyx
1 天前
看看 https://pub.dev/packages/bottom_sheet 行不行。 一个 ui 组件不至于上升到 flutter 怎么样,各种手势基础功能都有,实现这个繁琐且优先级不高。拿着 ai 自己实现一个也不是不行
chicbian
1 天前
我们 Android 人都是选择自己撸,iOS 还是太香了。
renchong
1 天前
@lumyx 诶,最近对 flutter 确实戾气有点大了,主要是最近的更新引入了不少问题,所以拿这个 ui 问题说事。

ui 问题确实不重要,但也有一些很重要的 issue,比如内购插件也出问题了,直接可能导致内购失败,虽然没有影响到我,因为我在沙盒环境中测试出来了

比如看这个 issue https://github.com/flutter/flutter/issues/172434 ,里面有很多人反应影响到了它们生产环境,内购状态各种错误,无法内购等问题。

而且这个问题也是长时间没有解决了,所以让我对 flutter 未来有点点担忧
这个 issue 里面也有很多人表示担忧

“我很惊讶这个插件可以在如此长的时间内处于不起作用的状态。”
“这个问题几个月过去了依然存在,真是令人担忧。应用内购买可是开发者的生计来源。这个软件包显然有问题,而且这个问题已经有一段时间没有得到任何更新了。”
“我被这个 bug 困扰了(我的错,因为发布前没有在 iOS 上测试),所以我可以说它不仅影响沙盒环境,还影响了生产环境。服务器端的购买验证也出了问题(我使用最新版本的软件包时,从 Apple 的终端收到了状态码 21002 的响应)。”
lumyx
1 天前
@renchong 这批开发者大概率对 Android/iOS 双端并不熟。Flutter Team 现在也就 50 来号人,引擎和框架本身还有一堆高优 Bug 要啃,IAP 这种边缘能力本来就该交给社区维护。你看 Compose Multiplatform ,官方只给了一套 UI 库,其余全撒手。Flutter 早期为了拉人头,做了太多『开箱即用』的插件,结果反而惯坏了开发者。按我的经验,先上 pub.dev 搜社区版替代,通常比官方插件更新更快、接口更合理。实在找不到,再自己撸一个开源出来,大家一起迭代,才能把 Flutter 生态真正做大
e13lau
1 天前
所以跨平台开发,我下注 KMP 了。share logic + native UI 。
以前也用过 Flutter 1.9 时代,各种不适,弃了。
另外还有 Swift on Android ,但是起步太晚,距离成熟还需要时间。
然后用 C++ 或者其他的其实都可以做到类似的效果,但是 KMP 基建对于移动端开发来说更成熟,
w568w
1 天前
恭喜你已完成入门 Flutter 必做功课:在官方 issue 下喷 Flutter 不修 Bug

----

抛开笑话,我还是要为 Flutter 辩解的。一是 Google 内部天天削减 Flutter 开发人员,二是 Flutter 的 issues 实在太多了,你任何时候去看都有几百个 PR 等着审查。他们的核心贡献者不到 50 人,每天全勤也不可能审查得完,更不要说还要跟进 1w 多个 open 的 issue 了,哪怕每人每天能解决 1 个,也要一年才能看完

虽然都说「不要比烂」,但我还是要说,你换成其他跨平台框架,问题只会更多…… Compose Multiplatform 还不成熟,RN 基本全靠自己手搓控件

所以怎么办呢?凑活着用呗。具体到你说的这个问题,下面其实已经有老哥给出解决方案了,你可以看看: https://github.com/flutter/flutter/issues/36283#issuecomment-2945917839
renchong
1 天前
@w568w 你说的对,其实早就用第三方的方案了,只是想喷下 flutter ,有点担心后面会怎么发展
renchong
1 天前
@lumyx #12 iap 这种还是蛮重要的,我觉得还是应该由官方负责维护,不过现在也就 50 来号人,感觉前途有点堪忧啊
renchong
1 天前
@e13lau KMP 现在生态怎么样了?
kuanat
1 天前
以我个人的体验来说,Flutter 的质量、社区生态算是比较好的了……问就是 bug 太多修不过来。

跨平台 UI 本来就是妥协方案,只能说强依赖这样的方案不是很理智,类比到现实就是一个便宜的替代方案不能期待它提供 100% 的体验。
e13lau
1 天前
@renchong 从去年年底开始进入这个领域,至少在我们推进过程里面,没有出现因为框架 issue 导致卡点。
类似 IAP 这种,我们还是利用原生的能力,更多是采取以接口的形式注入到 KMP 里面进行调用。
BeADre
1 天前
我以前写 web 的,现在写 flutter 简直就是由奢入俭,官方库的 bug 数量、解决速度还有生态真的有点让人无力吐槽...。刚看了一下依赖文件,目前有 14 个三方库是我们 fork 下来自己维护的,现在已经开始部分模块往原生切了

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

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

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

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

© 2021 V2EX