분류 전체보기(26)
-
이미지 관련 이슈
api에서 이미지를 받아 사용해 보았으나 assets라는 에러가 나왔다 어째서 나오는 것인지 확인해보니 해당 코드와 같이 이미지 파일명까지 작성하지 않아서 생기는 에러였다 Image.asset('images/empty_image.jpg'); 이후 다시금 확인해보았으나 문제가 있다 에러 빌더로 떨어지고 있으나 에러명은 403 스테이터스 에러였다 원인을 알고보니 user-agent가 없어서 생기는 에러이므로 headers: const {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36",} 위의 코드를 이미지 불러주는 코드..
2023.10.20 -
Row, Column과 mainaxisalignment, crossaxisalignment에 대해
플러터에서는 정렬을 원할 경우 Row 또는 Column 위젯을 사용한다 다만 어느 경우 Row를, 어느 경우 Column을 쓰는지와 원하는 정렬을 하고 싶을 때 약간 헷갈리는 느낌이 있어서 정리해보고자 한다 Row의 경우 가로를 뜻하며, Column의 경우는 세로를 뜻한다. mainaxisalignment은 해당 위젯의 align을, crossaxisalignment는 해당 위젯의 역align을 의미한다. ex) 텍스트를 우측에 붙이고 싶다면 Row위젯으로 감싼 후 mainaxisalignment을 이용하여 우측에 붙여주면 된다 비슷하게 텍스트가 위에 붙어있어서 가운데로 땡기고 싶다면 Column위젯으로 감싼 후 mainaxisalignment을 이용하여 센터에 두면 된다 반대로 Row위젯으로 감싼 후 ..
2023.10.16 -
픽셀 오버플로우
반복문을 통해 컨테이너를 복사하던 도중 이상한 이미지가 잡혀서 찾아보니 픽셀 오버플로우라는 오류라는듯 하다 픽셀 오버플로우는 간단하게 위젯의 크기에 맞지 않는 이미지가 있는 경우 생기는 것으로 크기만 맞춰주면 해결이 된다고 한다 해결책으로는 1.위젯의 크기 조절하여 부모에 맞추기 2.스크롤 위젯을 사용하기 (SingleChildScrollView) 3.Image.asset을 사용하여 이미지 크기를 최적화 3가지 정도로 본다 이중 스크롤이 무난하게 좋다고 보여서 이번 문제는 스크롤로 해결했다
2023.10.12 -
Future 등 비동기에 대하여
보고있는 강의에서 API 사용 시 구조체에 Future처리를 계속 하려고하는데 생각해보니 해당 함수는 무슨 기능을 하는지 확인해보았다 우선 동기와 비동기에 대해 설명하겠다 동기 : 동작을 차례대로 완료 후 수행하는 것 ex) A실행 -> A완료 -> B실행 -> B완료 비동기 : 동작이 완료되지 않아도 다음 동작을 수행하는 것 ex)A실행 -> B실행 -> A완료 -> B완료 Future는 비동기 처리를 위해 지금은 없지만 미래에 데이터가 담길 그릇 이라고 표현한다 즉 미래에 담길 값을 넣어둘 것이라고 컴퓨터에게 인식시키는 것으로 보인다 async / await의 경우 자바에서도 자주 본 비동기 함수로 플러터에서 사용할 경우에도 형식은 거의 흡사하다 Future functionName() async { ..
2023.10.12 -
플러터의 생명주기
initState를 보고 실행할 경우 처음 한번 타는 것은 단어만 봐도 예측이 가능하다 폼디에서도 사용한 라이프 사이클의 init도 동일하기 떄문이다 다만 다른 상태는 어떠한 것이 있는지 정확히 모르는 나이기 때문에 생명주기에 대해 찾아보았다 createState() mounted == true initState() didChangeDependencies() build() didUpdateWidget() setState() deactivate() dispose() mounted == false 위의 단계가 플러터의 라이프 사이클이라고 한다 몇몇개는 언뜻 봐도 추측이 가능하다 몇몇 주기는 추측이 어려워서 찾아보았다 createState() : stateful 위젯을 만드는 주기로 state의 인스턴스 반환..
2023.10.10 -
Future를 구조체에서 사용하는 방법
Future를 구조체에서 사용하기 위해서는 stateful에서 사용이 가능하기에 바꿔야한다 이후 바꾸게되면 widget.이 앞에 붙게되는데 이로 인해 사용이 가능하게 된다 다만 바로 확인해보면 빨간줄이 나오게 되는데 이 원인은 간단하게 확인이 가능하다 구조체에서 사용시에는 값이 없기 때문에 생기는 에러이기 때문에 late를 붙여주어 선언, initState 함수 내에 값을 넣어주는 것으로 해결이 가능하다 late Future episodes; @override void initState() { // TODO: implement initState super.initState(); // 구조체 형태에서는 widget사용이 불가능하여 late를 이용하여 추후에 추가하도록 요청 // init할 경우 데이터를 가..
2023.10.10