Flutter 颤振-在复杂的用户界面中,集团通信应该如何进行?
我想就一个我感兴趣的话题提出一些建议。最佳方式和最佳实践是什么?我试图画一个关于这个主题的UI。我正在使用这个软件包 场景:我有一个如图所示的列表,底部有得分按钮。如果不在列表中进行选择,按钮将不处于活动状态。当我从列表中选择项目时,按钮处于活动状态。当我按下“分数”按钮时,分数将写入列表中的选定元素,并且分数按钮再次变为非活动状态 这个UI看起来很简单,但我的问题是UI更复杂因此我肯定会在屏幕上使用多个区块。 我想知道如何以最好的方式实现集团之间的沟通?我应该在顶层创建父块吗Flutter 颤振-在复杂的用户界面中,集团通信应该如何进行?,flutter,dart,mobile,bloc,Flutter,Dart,Mobile,Bloc,我想就一个我感兴趣的话题提出一些建议。最佳方式和最佳实践是什么?我试图画一个关于这个主题的UI。我正在使用这个软件包 场景:我有一个如图所示的列表,底部有得分按钮。如果不在列表中进行选择,按钮将不处于活动状态。当我从列表中选择项目时,按钮处于活动状态。当我按下“分数”按钮时,分数将写入列表中的选定元素,并且分数按钮再次变为非活动状态 这个UI看起来很简单,但我的问题是UI更复杂因此我肯定会在屏幕上使用多个区块。 我想知道如何以最好的方式实现集团之间的沟通?我应该在顶层创建父块吗 您应该有一个控制
您应该有一个控制整个屏幕的单块。 在您的bloc状态下,您可以拥有一个属性来保存所选的项(或其索引-这里由您决定)。您的点按钮将基于此道具通过
BlocBuilder
启用/禁用。
点击点按钮,您只需添加一个事件,如
PointsAssigned(amount:50)
或FiftyPointsAssigned()
——再次由您决定。此事件将映射到一个状态,在该状态下,点将附加到所选项目,并将通过BlocBuilder
重建UI,以便反映您的更改。多个bloc可以在同一上下文中使用。您可以从flatter\u bloc
然后,您可以访问bloc数据并通信您在bloc中定义的任何内容
Widget build(BuildContext context) {
return MultiBlocProvider(
providers: [
BlocProvider<TodoBloc>(create: (BuildContext context) => TodoBloc()),
BlocProvider<PointBloc>(
create: (BuildContext context) => PointBloc()),
],
child: Scaffold(
......
),
);
}
小部件构建(构建上下文){
返回多BlocProvider(
供应商:[
BlocProvider(创建:(BuildContext上下文)=>TodoBloc()),
BlocProvider(
create:(BuildContext上下文)=>PointBloc()),
],
孩子:脚手架(
......
),
);
}
如果不知道当前代码的样子,很难解释。你真的不需要额外的集团。您的Todo实例可能具有某种bool属性onSelected
Todo(
final String name;
final int point;
final bool onSelected;
Todo(this.name, this.point, this.onSelected);
)