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

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



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

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

issue 底下已经有老哥开喷了:
“我用 Flutter 开发了一个项目,大概一个月了。现在因为这个问题,我不得不把整个项目用 Swift 重写一遍。六年了,官方团队竟然一直没理会。
警告:不要将 Flutter 用于严肃的应用程序。否则最终你会付出代价。”
2488 次点击
所在节点    程序员
35 条回复
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
23 小时 58 分钟前
我们 Android 人都是选择自己撸,iOS 还是太香了。
renchong
23 小时 46 分钟前
@lumyx 诶,最近对 flutter 确实戾气有点大了,主要是最近的更新引入了不少问题,所以拿这个 ui 问题说事。

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

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

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

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

跨平台 UI 本来就是妥协方案,只能说强依赖这样的方案不是很理智,类比到现实就是一个便宜的替代方案不能期待它提供 100% 的体验。
e13lau
22 小时 38 分钟前
@renchong 从去年年底开始进入这个领域,至少在我们推进过程里面,没有出现因为框架 issue 导致卡点。
类似 IAP 这种,我们还是利用原生的能力,更多是采取以接口的形式注入到 KMP 里面进行调用。
BeADre
22 小时 20 分钟前
我以前写 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