인프런 커뮤니티 질문&답변

이보성님의 프로필 이미지
이보성

작성한 질문수

Flutter 입문 확장판 - 인스타그램 클론 2.0

이미지 업로드 및 DB에 저장

progressindicator 질문

작성

·

217

0

강의에서 팁을 주신대로 

firestore에 올리는 동안 progressindicator를 띄울려면 어떤 방식으로 띄워야하나요 ??
progressindicator관련 참고할 수 있는  예시 코드가  현재까지

if(!snapshot.hasData){
// 데이터가 없으면 progressbar 반복
return Center(child: CircularProgressIndicator(),);
}

이거뿐인데요  

final storageTaskSnapshot = await task.onComplete;final storageTaskSnapshot = await task.onComplete;

위 코드를 변형하여 firestore의 작업이 끝날때까지 기다린다. 라는 코드를 쓰서 progressindicator를 나타내는 것같습니다만, 관련 메소드를 못찾는 상황입니다.

final firebaseTaskSnapshot 도 없는 상황이고요

도움 주시면 감사드리겠습니다  

답변 2

0

이보성님의 프로필 이미지
이보성
질문자

항상 꼼꼼하고 친절한 답변 감사드립니다

말씀하신대로 해보겠습니다 !!

0

오준석님의 프로필 이미지
오준석
지식공유자

힌트를 드리자면 다음과 같은 방식으로 로딩중임을 저장할 전역 변수를 만들어 두고
onPressed 속성에 실행될 코드를 async 로 선언하고
업로드 진행할 함수 앞에 await 붙여서 대기하도록 만들고
앞 뒤로 isProgressing 값을 변경하며 setState 하여 UI를 다시 그리도록 합니다.
그리고 위 progressIndicator 예시 코드에서 if 문 안에 isProgressing 을 조건으로 넣으면 되겠지요

var isProgressing = false;

...

FlatButton(

  onPressed: () async {

    setState() {

      isProgressing = true;

    }

    await _uploadFile(context);

    setState() {

      isProgressing = false;

    }    

  },

  child: Text('공유'),

)

이보성님의 프로필 이미지
이보성

작성한 질문수

질문하기