(TIL) 2020-09-16 기록
업데이트:
오늘 한 일
- 오늘은 어제 태그 검색 이후에 플로팅 리스트뷰를 보여주는 화면에 좀 찜찜한 부분이 있어 그걸 먼저 건드렸다. 문제점이 뭐였냐면 태그를 입력하는 중이 아닌데도 리스트뷰가 사라지지 않고 또 뒤로가기를 눌러도 사라지지 않았던 것이다. 또한 리스트뷰가 텍스트필드 바로 밑에 떠야 하는데 자꾸 텍스트필드와 겹쳐 뜨는 문제도 있었다.
- 두 번째 문제는 focusNode의 offset은 무조건 텍스트필드 좌측상단 끝의 위치를 반환한다는 점을 내가 알지 못했다. 그래서 TextPainter 객체를 만들어 그 안에 텍스트를 집어넣고 크기를 계산하게 하여 focusNode의 offset의 x와 y값에 더해주었다. 그랬더니 해결됐다.
- 그리고 첫 번째 문제는 이 TextState를 제대로 listen하지 않고 있어서 그랬던 문제인데 일단 위젯의 lifecycle이 모두 build 안에 구겨넣어지는 문제가 있는 Hook Widget을 그냥 stateful widget으로 바꾸고 어차피 화면의 state는 모두 provider에 넣어주는 것이 설계 상 바람직하니 화면에서 변하는 부분들을 모두 RecordingState 안에 넣어주었더니 해결되었다.
- 다만 그러고 나니 또 문제가 태그를 인식하는 부분인데 텍스트를 써나가면서 인식하는 건 지금 알고리즘으로 문제가 없는데 다시 지워들어오면서 태그를 만나게 됐을 때 어떻게 해야 할지가 문제였다. 일단 오늘은 머리도 어질어질하고 해서 내일 해결해야겠다.
내일 할 일
- 태그 인식 알고리즘을 개선해야 한다. 꼭 문자열 처리 알고리즘 문제를 푸는 느낌이다.
- 내 생각엔 내일 안에 태그 기능을 완벽하게 완성하기는 힘들 것 같다. 그래도 완성하게 되면 업로드 하는 것까지 해봐야겠다. 문제풀이 연습하는 느낌이다 진짜.
댓글남기기