Flutter Web浏览器缩放/Resize时意外触发Bloc添加Variant事件问题
Flutter窗口缩放时自动新增Variant的问题
调整Chrome浏览器窗口大小或进行缩放操作时,系统会触发OnAddVariantEvent,导致我的Column中自动添加新的Variant。目前已确认是该事件被触发,但不清楚原因。
Builder代码
BlocBuilder<VariantBloc, VariantState>( builder: (context, state) { if(state is AddedVariantState){ variants++; }else if (state is DeletedVariantState){ variants--; usecase.multipleUsecase.removeAt(state.index); } return Align( alignment: Alignment.centerLeft, child: ListView.builder( shrinkWrap: true, itemCount: variants, itemBuilder: (context, index) { usecase.multipleUsecase.add(MultipleAddServiceUsecase(index: index)); return VariantTextfield( usecase: usecase.multipleUsecase[index], index: index, ); }, ), ); }, ),
触发事件的按钮代码
class MarketplaceAddProductVariantButton extends StatelessWidget { const MarketplaceAddProductVariantButton({ Key? key, }) : super(key: key); @override Widget build(BuildContext context) { return Align( alignment: Alignment.centerLeft, child: NeumorphicButton( onPressed: () { context .read<VariantBloc>() .add(OnAddVariantEvent()); }, margin: EdgeInsets.only(left: ScreenUtils.percentWidth(context, .5)), style: marketplaceButtonsNeuStyle.copyWith( boxShape: NeumorphicBoxShape.roundRect(BorderRadius.circular(17))), child: Container( alignment: Alignment.center, height: ScreenUtils.percentHeight(context, 4.5), width: ScreenUtils.percentWidth(context, 12), child: AutoSizeText( 'Agregar otro', textAlign: TextAlign.center, style: _textStyle(), )), ), ); } }
Bloc代码
VariantBloc() : super(VariantInitial()) { on<OnAddVariantEvent>((event, emit) { emit(AddedVariantState()); }); }
截图对比
调整前:

调整后:

内容的提问来源于stack exchange,提问作者Arisbor
相关产品推荐
相关产品推荐

