فراخوانی 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); }
تغییر رنگ نوارهای سیستم
هنگام ایجاد دستی یک طرحبندی لبه به لبه برای اندروید ۱۴ و بالاتر، برنامه شما باید نوارهای سیستم را نیز شفاف کند.
شما میتوانید فایل 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);
دستگیرههای توکار
در نهایت، برنامه شما باید بتواند از درجها (insets) پشتیبانی کند تا رابط کاربری مهم از نمایش نوارهای سیستمی و بریدگی صفحه نمایش جلوگیری کند. برای یادگیری نحوه مدیریت درجها، به مستندات Compose و Views مراجعه کنید.