راه‌اندازی دستی نمایش لبه‌به‌لبه

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

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

  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);
}

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

هنگام ایجاد دستی چیدمان لبه‌به‌لبه برای Android 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 برای کنترل رنگ محتوای نوار وضعیت استفاده کنید. برای انجام این کار، از تابع 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);

مدیریت حاشیه‌ها

درنهایت، برنامه‌تان باید تورفتگی‌ها را مدیریت کند تا میانای کاربر مهم از نوارهای سیستم و برش نمایشگر دور بماند. برای آشنایی با نحوه مدیریت تورفتگی‌ها، به اسناد Compose و نماها مراجعه کنید.