flutter实践:慎用Expanded

问题:在一个Android原生的弹框里显示flutter view,由于使用了Expanded导致组件未显示出来

最神奇的地方在于debug调试模式显示正常,然后用release版本发布时怎么都显示不出来,还导致点击后无响应ANR

问题代码:

Dart 复制代码
child: StatefulBuilder(
        builder: (context, setState) {
          return Expanded(
            child: Container(
              padding: const EdgeInsets.fromLTRB(10, 0, 10, 0),
              decoration: BoxDecoration(
                  borderRadius: newStyle
                      ? const BorderRadius.only(
                          topLeft: Radius.circular(12),
                          topRight: Radius.circular(12),
                          bottomLeft: Radius.circular(0),
                          bottomRight: Radius.circular(0),
                        )
                      : BorderRadius.circular(4),
                  color: themeData.fillBase),
              child: Column(
                mainAxisAlignment: MainAxisAlignment.start,
                crossAxisAlignment: CrossAxisAlignment.stretch,
                children: _buildSettingColumn(),
              ),
            ),
          );
        },
      ),

修改后代码:

Dart 复制代码
child: StatefulBuilder(
        builder: (context, setState) {
          return Container(
            width: 200,
            padding: const EdgeInsets.fromLTRB(10, 0, 10, 0),
            decoration: BoxDecoration(
                borderRadius: newStyle
                    ? const BorderRadius.only(
                        topLeft: Radius.circular(12),
                        topRight: Radius.circular(12),
                        bottomLeft: Radius.circular(0),
                        bottomRight: Radius.circular(0),
                      )
                    : BorderRadius.circular(4),
                color: themeData.fillBase),
            child: Column(
              mainAxisAlignment: MainAxisAlignment.start,
              crossAxisAlignment: CrossAxisAlignment.stretch,
              children: _buildSettingColumn(),
            ),
          );
        },
      ),

总结:自己挖的坑给自己上了一课,过程中最困难的是release版本有问题时难以定位,最后还是回退代码才发现的。

相关推荐
梧桐ty10 分钟前
硬件交互联动:基于鸿蒙的Flutter物联网应用开发实战
flutter·华为·harmonyos
ujainu小24 分钟前
Flutter 全局Toast解决方案:fluttertoast 9.0.0 全平台集成与实战
flutter·fluttertoast
庄雨山1 小时前
Flutter模块化开发实战:跨端视角下与开源鸿蒙开发的异同及融合思路
flutter·openharmony
西西学代码2 小时前
Flutter---对话框
flutter
梧桐ty3 小时前
鸿蒙生态下的跨平台框架选型指南:Flutter vs React Native vs uni-app
flutter·华为·harmonyos
巴拉巴拉~~3 小时前
Flutter高级动画艺术:掌握交错动画,打造丝滑精致的UI体验
javascript·flutter·ui
庄雨山4 小时前
Flutter 质量保障体系搭建实战:兼谈开源鸿蒙应用质量管控异同与融合
flutter·openharmony
晚烛11 小时前
Flutter + OpenHarmony 导航与状态管理架构:构建可维护、可扩展、高性能的鸿蒙应用骨架
flutter·架构·harmonyos
晚烛12 小时前
实战前瞻:构建高可靠、强协同的 Flutter + OpenHarmony 智慧教育平台
javascript·flutter·html