-
스나이퍼팩토리 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});
@overrideWidget build(BuildContext context) {return MaterialApp(home: MainPage(),);}}
class MainPage extends StatefulWidget {const MainPage({super.key});
@overrideState<MainPage> createState() => _MainPageState();}
class _MainPageState extends State<MainPage> {var myController = TextEditingController();@overrideWidget 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를 쳤더니 위아래 텍스트필드가 동사에 겉이 움직이게 되었다.
이유는 하나의 컨트롤러를 사용했기 때문이다. 만약 따로 컨트롤러를 쓰려면 또 다른 컨트롤러를 생성하여 써야한다.