반응형

0. 들어가기

-. 플러터 widget을 모듈화 해서 간편하게 이용해 본다.

-. 모듈화 된 김에 조금 더 이쁘게(복잡하게) 꾸미고 여러번 사용해 보자.

1. widget 모듈화

-. 앞에서 만들었던 question 위젯을 모듈화해보자. Vue랑 비슷하게 하면 되는거같다.

-. 우선 text로 출력하던 부분만 먼저 Question 모듈로 변경.

import 'package:flutter/material.dart';

class Question extends StatelessWidget {
  String question;

  Question(this.question);

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return Text(question);
  }

}

-. 그리고 main.dart 최 상단에서 해당 모듈 파일을 import 해준다.

import 'package:flutter/material.dart';
import './question.dart'; //모듈 로드

class MyAppState extends State<MyApp> {
...
          body: Column(
            children: [
              Question(output_text), //기존 Text 대신 Question으로 선언
...
}

-. 앞에서 엉망으로 표기했던 text 출력도 조금 손봐서 button 1,2,3이 눌릴 때 각각 1,2,3이 출력되도록 수정했다.

2. 스타일 개선

-. 언제까지고 투박하게 텍스트 출력만 할 순 없으니 조금 이쁘게 꾸며보자.

-. 아래와 같이 코드를 변경한다. text를 감싸는 Container를 설정하고, 그 안에 텍스트를 넣자.

Text(question) // 기존 텍스트만

----
//변경 Container 안에 텍스트
Container(
      width: double.infinity,
      margin: const EdgeInsets.all(10),
      color: Colors.amber[600],
      child: Text(
        question,
        style: const TextStyle(fontSize: 28),
        textAlign: TextAlign.center,
      ),
    );

-. 아래 그림처럼 디자인이 변경되는 것을 확인할 수 있다.

-. 위젯 카탈로그란게 있는데, 여기에서 컨테이너에 대한 자세한 설명을 볼 수 있으니 숙지하자...

3. 모듈화한 위젯 여러개 넣기

-. Question 모듈을 여러개 넣으면 된다. 버튼을 누를 때 추가된 위젯들이 동시에 반응하는 것을 확인할 수 있다.

...
body: Column(
            children: [
              Question(output_text),
              Question(output_text),
...

 

 

728x90
반응형

'mobile' 카테고리의 다른 글

[flutter] json object + map (2)  (0) 2022.08.14
[flutter] json object + map  (0) 2022.08.13
[flutter] flutter 위젯(widget)  (0) 2022.06.26
[flutter] flutter app 작성 예제  (0) 2021.04.27
[flutter] 안드로이드 스튜디오 + flutter 사용법  (2) 2021.04.26
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기