CLASS app

Flutter

StatelessWidget

StatelessWidget

그럼 이제 runApp()에 전달할 위젯을 만들겠습니다.

이 위젯은 class로 생성합니다.

MyApp 클래스 생성

즉 클래스명이 MyApp입니다.

class MyApp {
}

이 MyApp클래스는 StatelessWidget 클래스를 상속받습니다.

클래스를 상속하려면 extends 키워드를 사용합니다.

StatelessWidget 클래스는 화면의 변화가 필요없을 때 사용하는 클래스입니다.

화면의 변화가 필요없다는 것은 어떠한 값이 변하지 않고 같은 화면만 사용자에게 보여줌을 뜻합니다.

다음의 코드를 main.dart에 작성합니다.

class MyApp extends StatelessWidget {
}
stateless widget

build 함수

StatelessWidget를 상속받은 MyApp에는 build함수를 정의해야합니다.

build()함수는 어떤 위젯을 만들것인지를 정의하는 함수입니다.

위젯을 생성할 때 호출되며 화면에 그려지는 위젯을 반환합니다.

build함수는 StatelessWidget클래스가 가진 메서드이므로 여기서 오버라이딩합니다.

메서드는 클래스내에서 생성하는 함수를 메서드(method)라고 부릅니다.

상속받은 클래스에 선언된 메서드와 같은 이름으로 메서드를 생성하는것을 오버라이딩이라고합니다.

build함수는 다음과 같이 선언합니다.

@override
Widget build(BuildContext context) {

}

오버라이딩했다는 뜻으로 @override를 적습니다.

@override는 애너테이션이라 부르며 컴파일러에게 이것은 오버라이딩했다는 것을 알려줍니다.

그럼 현재까지의 코드는 다음과 같습니다.

import 'package:flutter/material.dart';

void main(){
    runApp(MyApp());
}

class MyApp extends StatelessWidget {
    @override
    Widget build(BuildContext context){

    }
}
stateless widget

MaterialApp()함수

처음 runApp()이 실행시에는 materialApp()함수를 반환해야합니다.

그리고 이것은 StatelessWidget를 상속받는 클래스의 Widget build메서드가 반환합니다.

반환하는 키워드는 return이죠.

return MaterialApp();

위의 코드를 build()에 작성합니다.

import 'package:flutter/material.dart';

void main(){
    runApp(MyApp());
}

class MyApp extends StatelessWidget {
    @override
    Widget build(BuildContext context){
        return MaterialApp();
    }
}

코드를 캡쳐해보면 다음과 같죠.

build메서드에 MaterialApp()을 반환하므로써 빨간 줄들이 사라졌네요.

stateless widget

이 상태로 한번 앱을 구동해볼까요?

상단의 초록색 플레이 버튼을 눌러주세요.

다음과 같이 검은색 화면외에 아무것도 안나옵니다.

stateless widget

그럼 다음시간에는 화면에 뭔가를 띄워봅시다.





댓글 0개

정렬기준

PinkCoding

PinkCoding

X

PinkCoding

Web Scratch Pad

X

loading

            
            
        

컨텐츠로 돌아가기