با فراخوانی 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); }
رنگ نوارهای سیستم را تغییر دهید
هنگامی که در یک طرح بندی لبه به لبه کار می کنید، برنامه شما باید رنگ نوارهای سیستم را تغییر دهد تا محتوای زیر آن قابل مشاهده باشد. پس از اینکه برنامه شما این مرحله را انجام داد، سیستم تمام حفاظت بصری رابط کاربری را در حالت ناوبری اشاره ای و در حالت دکمه انجام می دهد.
- حالت ناوبری اشاره ای: سیستم از سازگاری رنگ پویا استفاده می کند که در آن محتویات نوارهای سیستم بر اساس محتوای پشت آن ها تغییر رنگ می دهند. در مثال زیر، دسته در نوار پیمایش زمانی که بالای محتوای روشن باشد به رنگ تیره و زمانی که بالای محتوای تیره باشد به رنگ روشن تغییر میکند.
- حالت دکمه: سیستم یک خط شفاف در پشت میلههای سیستم (برای سطح API 29 یا بالاتر) یا یک نوار سیستم شفاف (برای سطح API 28 یا قبلتر) اعمال میکند.
![تصویری که میله های سیستم نیمه شفاف را نشان می دهد](https://developer.android.com/static/images/guide/navigation/e2e-translucent-scrim.png?authuser=2&hl=fa)
- رنگ محتوای نوار وضعیت: رنگ محتوای نوار وضعیت، مانند زمان و نمادها را کنترل می کند.
![تصویری که رنگ محتوای نوار وضعیت را نشان می دهد](https://developer.android.com/static/images/guide/navigation/e2e-status-color.png?authuser=2&hl=fa)
می توانید فایل 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);