فراخوانی enableEdgeToEdge
منطق مورد نیاز برای سازگاری واقعی با عقب را در بر می گیرد و بنابراین روش توصیه شده برای تنظیم یک صفحه نمایش لبه به لبه است. برای روش مدرن لبه به لبه با استفاده از enableEdgeToEdge
به جای این راهنما به مستندات Compose and Views مراجعه کنید.
اگرچه توصیه نمی شود، اگر برنامه شما باید به صورت دستی یک صفحه نمایش لبه به لبه راه اندازی کند، می توانید این مراحل را دنبال کنید:
-
WindowCompat.setDecorFitsSystemWindows(window, false)
را فراخوانی کنید. - نوارهای سیستم را روی شفاف تنظیم کنید.
- دسته داخلی.
برنامه خود را به صورت تمام صفحه قرار دهید
همانطور که در مثال کد زیر نشان داده شده است، از WindowCompat.setDecorFitsSystemWindows(window, false)
برای قرار دادن برنامه خود در پشت نوارهای سیستم استفاده کنید:
کاتلین
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) WindowCompat.setDecorFitsSystemWindows(window, false) }
جاوا
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WindowCompat.setDecorFitsSystemWindows(getWindow(), false); }
رنگ نوارهای سیستم را تغییر دهید
هنگامی که به صورت دستی یک طرح بندی لبه به لبه برای اندروید 14 و بالاتر ایجاد می کنید، برنامه شما باید نوارهای سیستم را نیز شفاف کند.
می توانید فایل themes.xml
را ویرایش کنید تا رنگ نوار وضعیت و پیمایش را شفاف کنید و رنگ نماد نوار وضعیت را تغییر دهید.
<!-- values-v29/themes.xml -->
<style name="Theme.MyApp">
<item name="android:navigationBarColor">
@android:color/transparent
</item>
<!-- Optional: set to transparent if your app is drawing behind the status bar. -->
<item name="android:statusBarColor">
@android:color/transparent
</item>
<!-- Optional: set for a light status bar with dark content. -->
<item name="android:windowLightStatusBar">
true
</item>
</style>
برای کنترل رنگ محتوای نوار وضعیت میتوانید به جای theme.xml
از WindowInsetsControllerCompat
API استفاده کنید. برای انجام این کار، از تابع setAppearanceLightNavigationBars()
استفاده کنید true
برای تغییر رنگ پیش زمینه ناوبری به رنگ روشن یا false
برای برگرداندن به رنگ پیش فرض.
کاتلین
val windowInsetsController = ViewCompat.getWindowInsetsController(window.decorView) windowInsetsController?.isAppearanceLightNavigationBars = true
جاوا
WindowInsetsControllerCompat windowInsetsController = ViewCompat.getWindowInsetsController(getWindow().getDecorView()); if (windowInsetsController == null) { return; } windowInsetsController.setAppearanceLightNavigationBars(true);
دسته داخلی
در نهایت، برنامه شما باید ورودیها را مدیریت کند تا رابط کاربری حیاتی از نوارهای سیستم و بریدگی نمایشگر جلوگیری کند. برای یادگیری نحوه مدیریت inset ها به مستندات Compose and Views مراجعه کنید.