صفحه نمایش لبه به لبه را به صورت دستی تنظیم کنید

فراخوانی enableEdgeToEdge منطق مورد نیاز برای سازگاری واقعی با عقب را در بر می گیرد و بنابراین روش توصیه شده برای تنظیم یک صفحه نمایش لبه به لبه است. برای روش مدرن لبه به لبه با استفاده از enableEdgeToEdge به جای این راهنما به مستندات Compose and Views مراجعه کنید.

اگرچه توصیه نمی شود، اگر برنامه شما باید به صورت دستی یک صفحه نمایش لبه به لبه راه اندازی کند، می توانید این مراحل را دنبال کنید:

  1. WindowCompat.setDecorFitsSystemWindows(window, false) را فراخوانی کنید.
  2. نوارهای سیستم را روی شفاف تنظیم کنید.
  3. دسته داخلی.

برنامه خود را به صورت تمام صفحه قرار دهید

همانطور که در مثال کد زیر نشان داده شده است، از 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 مراجعه کنید.