인문주의 사피엔스

Flutter에서 뒤로가기 버튼 이벤트 처리하기와 상태바의 글자색 변경하기 본문

프로그래밍/Flutter

Flutter에서 뒤로가기 버튼 이벤트 처리하기와 상태바의 글자색 변경하기

인문주 2022. 6. 9. 00:32
반응형

WillPopScope

WillPopScope는 안드로이드 OS의 뒤로가기 버튼 이벤트를 처리하고 싶을 때 필요한 위젯 클래스로서 사용법은 다음과 같습니다.

 

WillPopScope(
    child: Scaffold(),
    onWillPop: () async {
        await Future.delayed(const Duration(seconds: 1));
        return true;
    },
)

 

뒤로가기 버튼 이벤트가 발생하면 호출되는 콜백인 onWillPop에서 true를 반환하면 뒤로가기가 그대로 실행되고, false를 반환하면 뒤로가기가 취소됩니다. 

onWillPop에서 async, await를 사용해서 다이얼로그를 통해 사용자의 선택을 받거나, 종료 메시지를 표시하거나, 뒤로가기의 실행을 지연하는 등의 중간 과정을 삽입할 수도 있습니다. 위의 코드는 버튼을 누르면 1초 후에 뒤로가기가 실행되는 예를 나타낸 것입니다.

 

AppBar.systemOverlayStyle

Scaffold를 사용할 때 AppBar를 포함하는 경우라면 상태바의 글자색을 흰색 또는 검은색으로 설정할 수 있습니다. 아래 코드는 상태바의 글자색을 검은색으로 설정하는 예제입니다. 글자색을 흰색으로 바꾸고 싶다면 SystemUiOverlayStyle.light를 사용하면 됩니다.

 

Scaffold(
    appBar: AppBar(
        systemOverlayStyle: SystemUiOverlayStyle.dark,
    ),
)

 

AnnotatedRegion<SystemUiOverlayStyle>

Scaffold를 사용하지만 AppBar를 포함하지 않는 경우라면 AnnotatedRegion을 사용해서 상태바의 글자색을 흰색 또는 검은색으로 설정할 수 있습니다. 아래 코드는 상태바의 글자색을 검은색으로 설정하는 예제입니다. 글자색을 흰색으로 바꾸고 싶다면 SystemUiOverlayStyle.light를 사용하면 됩니다.

 

AnnotatedRegion<SystemUiOverlayStyle>(
    value: SystemUiOverlayStyle.dark,
    child: Scaffold(),
)

 

다음은 테스트를 위한 예제 소스코드입니다.

 

 

반응형
Comments