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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

    你说不大吧,也如鲠在喉,用的好好的出个问题,一搜,很多年前就发现了,就是一直不修复。
    renchong
        27
    renchong  
    OP
       2 天前
    @admin948 对的 就是这种感觉
    actopas
        28
    actopas  
       1 天前
    rn+expo 更是小问题不断
    tt83
        29
    tt83  
       1 天前
    这种组件实在不行还能自己撸,关键像 WebView 这么重的组件官方目前还不支持 web, windows
    yaocf
        30
    yaocf  
       1 天前
    @renchong 看着像是滑动事件的分发问题。如果没有 listview 的情况下可以正常滑动关闭,就不该定性为是组件的问题。
    Gilfoyle26
        31
    Gilfoyle26  
       1 天前
    @justdoit123 #22 非常赞同
    p1gd0g
        32
    p1gd0g  
       1 天前
    ios 竟然不支持?
    flutter 确实好多 bug 没改了,比如说中文字体垂直不居中。
    不过我最想要的还是 web 端的广告支持,快要饿死了。。。
    linhongye
        33
    linhongye  
       1 天前
    任何跨平台技术, 都不好用...
    按照我的经验, 直接多端都用原生来开发前端, 整体人力的消耗反而更少.
    当然, 前提是产品经理得把每个按钮\每个显示框 说清楚, 不同前端团队理解一致
    seahorzhang
        34
    seahorzhang  
       1 天前
    只能说 ios 原生提供的太多了。web 看了羡慕的流口水。
    daxigua1te
        35
    daxigua1te  
       1 天前
    @renchong 确实如此,我边做别的功能边等这个修复,后面实在等不及了,最后还是自己写了原生方法实现了内购功能。
    kennir
        36
    kennir  
       1 天前
    用了 5,6 年的 flutter 了, 绝大部分需求直接能找到 package, dart 写起来来不弱 kotlin, 比 swift 舒服多了
    ysy950803
        37
    ysy950803  
       1 天前
    用 flutter 有一个原因是逆向难度比原生大,对独立开发者友好。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2627 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 12:08 · PVG 20:08 · LAX 04:08 · JFK 07:08
    ♥ Do have faith in what you're doing.