سلام دوستان چطورید امدم SystemUiMode در فلاتر براتون بگم و اینگه چطئر برای تجربه کاربری بهتر استفاده کنیم.
میخوایم نوار وضعیت Status Bar و Navigation Bar رو مدیریت کنیم که چطور نمایش داده بشه.
اول از هرچیزی قبل runApp کد زیر مینویسیم
WidgetsFlutterBinding.ensureInitialized();
اگر بخوایم یه تجربه کاربری تمام صفحه ایجاد کنیم برای کاربرامون از edgeToEdge استفاده میکنیم
نوار وضعیت و نوار ناوبری شفاف میشن و محتوای برنامه زیر اونها نمایش داده میشه.
void main() { WidgetsFlutterBinding.ensureInitialized(); SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge); runApp(const MyApp()); }
void main() { WidgetsFlutterBinding.ensureInitialized(); SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersive); runApp(const MyApp()); }
immersive
، اما نوارهای وضعیت و ناوبری پس از ظاهر شدن با کشیدن انگشت، بهطور خودکار دوباره مخفی میشوند.void main() { WidgetsFlutterBinding.ensureInitialized(); SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky); runApp(const MyApp()); }
( تنظیم شده فقط Navigation Bar نمایش داده نشه )
overlays
).void main() { WidgetsFlutterBinding.ensureInitialized(); SystemChrome.setEnabledSystemUIMode( SystemUiMode.manual, overlays: [SystemUiOverlay.bottom], ); runApp(const MyApp()); }
نوار وضعیت و نوار ناوبری مخفی میشوند، اما به محض تعامل کاربر (مثلاً لمس صفحه)، دوباره ظاهر میشوند.
void main() { WidgetsFlutterBinding.ensureInitialized(); SystemChrome.setEnabledSystemUIMode(SystemUiMode.leanBack); runApp(const MyApp()); }