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