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

با فراخوانی enableEdgeToEdge می‌توانید صفحه نمایش لبه به لبه را در برنامه خود فعال کنید. این باید برای اکثر برنامه ها کافی باشد. اگر برنامه شما نیاز به انجام این کار بدون استفاده از enableEdgeToEdge داشته باشد، این راهنما نحوه فعال کردن لبه به لبه را توضیح می‌دهد.

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

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

رنگ نوارهای سیستم را تغییر دهید

هنگامی که در یک طرح بندی لبه به لبه کار می کنید، برنامه شما باید رنگ نوارهای سیستم را تغییر دهد تا محتوای زیر آن قابل مشاهده باشد. پس از اینکه برنامه شما این مرحله را انجام داد، سیستم تمام حفاظت بصری رابط کاربری را در حالت ناوبری اشاره ای و در حالت دکمه انجام می دهد.

  • حالت ناوبری اشاره ای: سیستم از سازگاری رنگ پویا استفاده می کند که در آن محتویات نوارهای سیستم بر اساس محتوای پشت آن ها تغییر رنگ می دهند. در مثال زیر، دسته در نوار پیمایش زمانی که بالای محتوای روشن باشد به رنگ تیره و زمانی که بالای محتوای تیره باشد به رنگ روشن تغییر می‌کند.
شکل 1. تغییر رنگ در حالت ناوبری حرکتی.
  • حالت دکمه: سیستم یک خط شفاف در پشت میله‌های سیستم (برای سطح API 29 یا بالاتر) یا یک نوار سیستم شفاف (برای سطح API 28 یا قبل‌تر) اعمال می‌کند.
تصویری که میله های سیستم نیمه شفاف را نشان می دهد
شکل 2. ضایعات شفاف پشت میله های سیستم.
  • رنگ محتوای نوار وضعیت: رنگ محتوای نوار وضعیت، مانند زمان و نمادها را کنترل می کند.
تصویری که رنگ محتوای نوار وضعیت را نشان می دهد
شکل 3. رنگ محتوای نوار وضعیت.

می توانید فایل 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>

می‌توانید مستقیماً از WindowInsetsController API استفاده کنید، اما ما اکیداً توصیه می‌کنیم در صورت امکان از کتابخانه پشتیبانی WindowInsetsControllerCompat استفاده کنید. برای کنترل رنگ محتوای نوار وضعیت می‌توانید به جای 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);