V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
renchong
V2EX  ›  程序员

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

  •  
  •   renchong · 21 小时 0 分钟前 · 2195 次点击
    如图,flutter 可以从底部弹出一个 Sheet ,但是无法使用手势从上到下滑动关闭这个 Sheet



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

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

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

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

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

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

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

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

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

    RN 同样有这样的问题。经常能看到始祖 bug ,完全不修。

    RN 这几年憋了个大的,升级了新架构,用新的 js 引擎。憋的那几年,真以为他们要 “跑路” 了。
    justdoit123
        22
    justdoit123  
       17 小时 52 分钟前
    对于跨平台方案,我的建议是不要有高的期望值。写写交互一般的业务就可以了。别追求太高级的 UI 、交互。
    renchong
        23
    renchong  
    OP
       17 小时 50 分钟前
    @justdoit123 #21 大的憋了过后怎么样
    justdoit123
        24
    justdoit123  
       17 小时 26 分钟前
    没深入使用新特性,升级整体算是顺畅。

    @renchong
    whyrookie
        25
    whyrookie  
       17 小时 21 分钟前 via Android
    KMP 只共享业务,UI 可以原生自己分开写,更喜欢 KMP
    admin948
        26
    admin948  
       16 小时 57 分钟前
    你写的多了就会发现 flutter 有很多历史遗留问题,动辄就是很多年没修复的那种。

    你说问题大吧,也不算大,总有其他替代方案。

    你说不大吧,也如鲠在喉,用的好好的出个问题,一搜,很多年前就发现了,就是一直不修复。
    renchong
        27
    renchong  
    OP
       16 小时 55 分钟前
    @admin948 对的 就是这种感觉
    actopas
        28
    actopas  
       2 小时 42 分钟前
    rn+expo 更是小问题不断
    tt83
        29
    tt83  
       1 小时 52 分钟前
    这种组件实在不行还能自己撸,关键像 WebView 这么重的组件官方目前还不支持 web, windows
    yaocf
        30
    yaocf  
       52 分钟前
    @renchong 看着像是滑动事件的分发问题。如果没有 listview 的情况下可以正常滑动关闭,就不该定性为是组件的问题。
    Gilfoyle26
        31
    Gilfoyle26  
       几秒前
    @justdoit123 #22 非常赞同
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2695 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 04:03 · PVG 12:03 · LAX 20:03 · JFK 23:03
    ♥ Do have faith in what you're doing.