ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스나이퍼팩토리 9일차 과제5
    카테고리 없음 2023. 2. 7. 16:10

    하나의 TextEditingController를 생성하여 변수에 넣은 다음, 두 개의 TextField 위젯에 해당 변수를 controller에 똑같이 연결하면 어떤 결과가 일어나는지 테스트하고 실행 결과에 대해 정리하세요.

     

    아래는 테스트코드

    import 'package:flutter/material.dart';

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

    class MyApp extends StatelessWidget {
      const MyApp({super.key});

      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: MainPage(),
        );
      }
    }

    class MainPage extends StatefulWidget {
      const MainPage({super.key});

      @override
      State<MainPage> createState() => _MainPageState();
    }

    class _MainPageState extends State<MainPage> {
      var myController = TextEditingController();
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: Scaffold(
            body: Center(
              child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  TextField(
                    controller: myController,
                  ),
                  TextField(
                    controller: myController,
                  )
                ],
              ),
            ),
          ),
        );
      }
    }

    실행결과

    위에 실행결과처럼 위에 TextField에는 숫자 12345를 썼고 아래의 TextField에는 영어asdfg를 쳤더니 위아래 텍스트필드가 동사에 겉이 움직이게 되었다.

    이유는 하나의 컨트롤러를 사용했기 때문이다. 만약 따로 컨트롤러를 쓰려면 또 다른 컨트롤러를 생성하여 써야한다.

Designed by Tistory.