-
<플러터> 안드로이드 네비게이션 스타일 확인하는 방법액티브 스킬/플러터 2023. 1. 15. 17:01728x90
🧭
네이게이션 스타일
안드로이드는 일반적으로 '메뉴, 홈버튼, 뒤로가기' 묶음을 가지는 네비게이션 스타일을 가집니다.
하지만 iOS 처럼 스와이프 제스쳐로 설정을 변경할 수 있습니다.
플러터에서 해당 설정을 확인하는 방법
그렇다면 사용자가 버튼 형태의 스타일을 사용하는지 스와이프 제스쳐를 사용하는지 확인할 수 있을까요?
디바이스의 높이를 계산하면 사용자가 어떤 스타일을 사용하고 있는지 파악할 수 있습니다.
디바이스의 실제 높이에서 화면에 사용하는 높이를 빼고 나면 남는 부분이 안드로이드 네비게이션의 높이일 것입니다.
디바이스 실제 높이
디바이스의 실제 높이를 확인하려면 device_info_plus라는 라이브러리가 필요합니다.
해당 라이브러리를 통해 다음과 같이 디바이스 높이를 알 수 있습니다.
final DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin(); final AndroidDeviceInfo androidInfo = await deviceInfoPlugin.androidInfo; final deviceHeight = androidInfo.displayMetrics.heightPx;
네비게이션 높이 계산
디바이스 높이를 픽셀 비율로 나누어서 dp 높이를 계산하고 화면 높이를 빼면 네비게이션 높이를 구할 수 있습니다.
final screenHeight = MediaQuery.of(context).size.height; final devicePixelRatio = MediaQuery.of(context).devicePixelRatio; final androidNavHeight = deviceHeight / devicePixelRatio - screenHeight;
안드로이드 s20+, s9+ 2개의 기기를 확인한 결과 버튼 형태의 스타일이 적용된 경우 48, 스와이프 제스쳐 스타일이 적용된 경우 약 14.857... 이라는 결과를 얻을 수 있었습니다.
📌
https://pub.dev/packages/device_info_plus
device_info_plus | Flutter Package
Flutter plugin providing detailed information about the device (make, model, etc.), and Android or iOS version the app is running on.
pub.dev
728x90'액티브 스킬 > 플러터' 카테고리의 다른 글
<플러터> 드래그 또는 터치로 뒤집히는 카드 위젯 만들기 (0) 2023.03.19 <플러터> 갤러리 사진의 gps 정보가 null 또는 0.0과 같이 제대로 넘어오지 않을 때 (0) 2023.03.05 <플러터> 인앱업데이트 - 강제업데이트 후 재실행 안될 때 (0) 2023.01.10 <플러터> showDialog context 에러: Get.context, nullable (0) 2023.01.09 <플러터> StatefulBuilder (0) 2022.12.13