Flutter LayoutBuilder是一个根小部件,在setState上重新生成

Flutter LayoutBuilder是一个根小部件,在setState上重新生成,flutter,android-layout,flutter-layout,flutter-dependencies,flutter-web,Flutter,Android Layout,Flutter Layout,Flutter Dependencies,Flutter Web,我使用LayoutBuilder是为了响应初始化,但是每当我调用setState((){});在SignUp.dart中,发生了什么 MainScreen->SignUp()首先运行,然后LayoutBuilder->MaterialApp运行 这是自下而上的 void main() async { await Hive.initFlutter(); await Hive.openBox('onbaord'); runApp(App()); } class App extend

我使用LayoutBuilder是为了响应初始化,但是每当我调用setState((){});在SignUp.dart中,发生了什么

MainScreen->SignUp()首先运行,然后LayoutBuilder->MaterialApp运行 这是自下而上的


void main() async {
  await Hive.initFlutter();
  await Hive.openBox('onbaord');

  runApp(App());
}

class App extends StatefulWidget {
  @override
  _AppState createState() => _AppState();
}

class _AppState extends State<App> {
  bool seen = false;
  int count = 0;

  @override
  Widget build(BuildContext context) {
    return LayoutBuilder(
      builder: (context, state) {
        return MultiBlocProvider(
          providers: [
            BlocProvider(create: (context) => ValidateSignUpFormBloc()),
            BlocProvider(create: (context) => PageChangeBloc()),
            BlocProvider(create: (context) => CheckOnboardSeenBloc()),
          ],
          child: MaterialApp(
            theme: ThemeData(
              primaryColor: kPrimaryColor,
            ),
            initialRoute: Routes.initial,
            routes: {
              Routes.login: (ctx) => Login(),
              Routes.signup: (ctx) => SignUp(),
              Routes.onboard: (ctx) => OnBoardView(),
              Routes.initial: (ctx) => MainScreen(),
            },
          ),
        );
      },
    );

  }
}

class MainScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    print("LayoutBuilder->MaterialApp -> MainScren");
    print(context.deviceSize.orientation);
    return SignUp();
   
  }

 
} 

void main()异步{
等待蜂箱。初始颤振();
等待Hive.openBox('onbaord');
runApp(App());
}
类应用程序扩展StatefulWidget{
@凌驾
_AppState createState();
}
类_AppState扩展了状态{
bool-seen=false;
整数计数=0;
@凌驾
小部件构建(构建上下文){
返回布局生成器(
生成器:(上下文、状态){
返回多BlocProvider(
供应商:[
BlocProvider(创建:(上下文)=>ValidateSignUpFormBloc()),
BlocProvider(创建:(上下文)=>PageChangeBloc()),
BlocProvider(创建:(上下文)=>CheckOnboardSeenBloc()),
],
孩子:MaterialApp(
主题:主题数据(
primaryColor:kPrimaryColor,
),
initialRoute:Routes.initial,
路线:{
Routes.login:(ctx)=>login(),
Routes.signup:(ctx)=>signup(),
Routes.onboard:(ctx)=>OnBoardView(),
Routes.initial:(ctx)=>MainScreen(),
},
),
);
},
);
}
}
类MainScreen扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
打印(“LayoutBuilder->MaterialApp->MainScren”);
打印(context.deviceSize.orientation);
返回注册();
}
}