问题:在一个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版本有问题时难以定位,最后还是回退代码才发现的。