반응형
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Color.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
StatelessWidget & StatefulWidget
상태연결과 관련 있는 구분.
StatelessWidget : 상태를 연결할 필요가 없는 정적인 위젯, 적은 자원으로 화면 구성.
Statefulwidget : 상태가 연결된 동적인 위젯, 상태변경을 항시 지켜봐야하므로 자원을 많이 소비.
void main(){
runApp(MyApp());
}
class MyApp extends StatefulWidget{
@override
State<StatefulWidget> createState(){
return _MyApp();
}
}
class _MyApp extends State<StatefulWidget> {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Color.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
darkTheme: ThemeData.light(),
home: Scaffold(
body: Center(
child: Switch(
value: switchValue,
onChanged: (value){
setState((){
print(value);
switchValue = value;
});
}
),
),
)
);
}
}
스테이트풀 위젯은 State클래스가 필요.
State클래스를 상속받는 _MyApp를 만들고, createState()함수를 재정의해서 호출.
화면 상태를 갱신하려면 " setState()" 함수 안에서 해야함.
반응형