Flutter/Flutter Tech

    [플러터] 자식 클래스에서 부모 클래스에 데이터 전달

    dart에서는 포인터가 존재하지 않는다. 따라서 부모 클래스에서 호출시킨 자식 클래스가 부모 클래스 내부 변수 값을 변화시키기 위해서는 부모 클래스에서 변수 값을 변화시키는 함수를 선언하고, 해당 함수를 자식 클래스의 매개변수로 넘겨주어야한다. 단순하게 설명해서 set, get 형태의 함수를 일반 함수로 선언하고 이를 자식 클래스의 생성자에 넘겨주는 것이다. 단, set,get 형태는 인수로 넘기고 받을 수 없으니 Function의 형태로 넘겨주어야한다. (혹은 typedef로 별도 타입을 생성해준다) 아래는 두 가지 방법의 예시이다. 재사용 가능한 형태의 예시1과 조금 더 간결한 형태의 예시2이다. 예시1. 부모 클래스에서 함수를 생성하고, 함수를 인수로 자식 클래스로 넘겨주는 방법 class Pare..

    [Flutter] 키보드 팝업 상태에서 뒤로가기 이벤트 처리

    [Flutter] 키보드 팝업 상태에서 뒤로가기 이벤트 처리

    앱에서 텍스트를 입력받을 때, 키보드가 하단에서 팝업된다. 뒤로가기 등으로 키보드가 내려갈 때를 감지해야한다면 해당 패키지를 사용하면 된다. 예를 들어 Textfield에 포커스가 되고 키보드가 팝업되며 특정 위젯이 바뀌었는데, 사용자가 뒤로가기로 키보드를 내리는 경우 특정 위젯을 되돌려놓아야하는 경우가 있겠다. keyboard_visibility | Flutter Package Flutter plugin for discovering the state of the soft-keyboard visibility on Android and iOS. pub.dev 코드 void initState(){ KeyboardVisibilityNotification().addNewListener( onHide : () {..

    [Flutter] 선택된 위젯을 관리하는 Focusnode

    - textfield를 선택했을 때, 다른 위젯이 변하거나 생성되게 하는 경우 - textfield에 데이터를 입력 후 키보드의 next, done 버튼을 터치했을 때 다음 textfield로 자동으로 넘어가게 할 경우 주로 textfield에서 사용되며 말 그대로 focus가 어디에 있는지를 관리한다. controller와 마찬가지로 textfield 하나 당 하나의 focusnode를 할당해주면 된다. textfield가 선택되면 해당 focusnode는 포커스를 획득하는 단순한 구조이다. textfield에 focusnode 할당 FocusNode _focusNode = FocusNode(); .. TextField( focusNode: _focusNode, .. focusnode를 제거하여 아무것..