본문 바로가기
카테고리 없음

flutter 프로젝트 구조 2

by 잡다백과사전 2021. 2. 27.
반응형
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()" 함수 안에서 해야함.

반응형