نمایشگر بهبهلبه به برنامه شما امکان میدهد تا میانای کاربری خود را در پشت نوارهای سیستم—نوار وضعیت، نوار زیرنویس ناشنوایان، و نوار پیمایش—رسم کند تا تجربه کاربری فراگیرتری داشته باشد. اگر دستگاههای دارای Android 15 (میانای برنامهسازی کاربردی سطح ۳۵) یا بالاتر را هدفیابی کنید، لبهبهلبه بهطور پیشفرض اجباری میشود.
برای نمایش صحیح محتوا بهصورت لبهبهلبه در همه نسخههای Android، این مراحل راهاندازی را دنبال کنید. بدون این مراحل، برنامه شما ممکن است رنگهای یکپارچه را در پشت نوارهای سیستم رسم کند یا محتوای خود را بهصورت همزمان با انتقالهای صفحهکلید روی صفحه (IME) پویانمایی نکند.
مهارتهای Android
مشاهده در GitHubافزودن پشتیبانی لبهبهلبه
android skills add edge-to-edge۱. فعال کردن نمایش لبهبهلبه
برای فعال کردن لبهبهلبه در نسخههای قبلی Android، در روش Activity.onCreate() خود،
enableEdgeToEdge() را فراخوانی کنید:
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() // ... }
بهطور پیشفرض، enableEdgeToEdge() نوارهای سیستم را شفاف میکند، بهجز در حالت پیمایش ۳دکمهای که در آن یک لایه نیمهشفاف روی نوار پیمایش اعمال میکند تا کنتراست بهتری ایجاد شود. رنگ نمادهای سیستم و زمینه مات با زمینه روشن یا تیره سیستم تطبیق داده میشود.
۲. پیکربندی windowSoftInputMode
android:windowSoftInputMode="adjustResize" را در ورودی AndroidManifest.xml «فعالیت» تنظیم کنید. این تنظیم به برنامه شما امکان میدهد تا درجهای IME را دریافت کند و به شما امکان میدهد چیدمانتان را با حاشیه زمانی که صفحهکلید روی صفحه ظاهر یا ناپدید میشود تنظیم کنید.
<!-- In your AndroidManifest.xml file: -->
<activity
android:name=".ui.MainActivity"
android:label="@string/app_name"
android:windowSoftInputMode="adjustResize"
android:theme="@style/Theme.MyApplication"
android:exported="true">
...
</activity>
۳. مدیریت همپوشانیها بااستفاده از حاشیهها
پساز فعال شدن لبهبهلبه، برخیاز محتوا و عناصر میانای کاربر برنامه شما ممکن است در پشت نوارهای سیستم رسم شوند. برای جلوگیری از پوشیده شدن عناصر مهم یا تعاملی توسط نوارهای سیستم یا همپوشانی با اشارههای سیستم، باید حاشیهها را مدیریت کنید.
حاشیهها بخشهایی از صفحه را توصیف میکنند که با میانای کاربر سیستم یا اشارههای سیستم تلاقی دارند. انواع اصلی حاشیههایی که باید برای نمایشگر لبهبهلبه درنظر بگیرید عبارتاند از:
- حاشیههای نوارهای سیستم: نشاندهنده مناطقی است که نوارهای سیستم در آنها نمایش داده میشود. از اینها استفاده کنید تا میانای کاربر توسط نوارهای سیستم پوشیده نشود.
- حاشیههای برش نمایشگر: نشاندهنده مناطقی است که برش فیزیکی (مانند بریدگی دوربین) در صفحه دستگاه وجود دارد.
در «نوشتن»، میتوانید ازطریق خطکشها، اصلاحکنندههای حاشیه، یا اصلاحکنندههای اندازه درونگذاری، با درونگذاریها کار کنید. برای راهنمایی دقیق، درباره حاشیههای پنجره را ببینید.
موضوعهای پیشرفته
برای موارد استفاده پیشرفتهتر از لبه تا لبه، موارد زیر را درنظر بگیرید.
حالت فراگیر
برخیاز محتواها، مثل ویدیوها یا نقشهها، از تجربه کاملاً فراگیری که در آن نوارهای سیستم پنهان میشود بهره میبرند. میتوانید نوارهای سیستم را بااستفاده از
WindowInsetsControllerCompat پنهان کنید:
val windowInsetsController = WindowCompat.getInsetsController(window, window.decorView) // Hide the system bars. windowInsetsController.hide(WindowInsetsCompat.Type.systemBars()) // Show the system bars. windowInsetsController.show(WindowInsetsCompat.Type.systemBars())
رنگها و نمادهای نوار سیستم
وقتی از لبه تا لبه میروید، پسزمینه برنامه شما ممکن است در پشت نوارهای سیستم نمایان شود، بنابراین ممکن است لازم باشد رنگهای نماد نوار سیستم را برای کنتراست بهتر تنظیم کنید.
برای تغییر دادن نمادهای نوار وضعیت به روشن یا تاریک، از WindowInsetsControllerCompat استفاده کنید:
// Set status bar icons to dark. WindowCompat.getInsetsController(window, window.decorView) .isAppearanceLightStatusBars = true // Set status bar icons to light. WindowCompat.getInsetsController(window, window.decorView) .isAppearanceLightStatusBars = false
محافظت از نوار سیستم
اگرچه enableEdgeToEdge() نوارهای سیستم شفاف یا نیمهشفاف پیشفرض را ارائه میدهد، ممکن است لازم باشد این مورد را سفارشیسازی کنید. برای تصمیمگیری درباره زمان استفاده از نوارهای شفاف دربرابر نوارهای نیمهشفاف، به راهنمای طراحی نوارهای سیستم Android و راهنمای طراحی لبهبهلبه مراجعه کنید.
برای اینکه نوار پیمایش ۳دکمهای بهجای نیمهشفاف کاملاً شفاف شود، میتوانید اجرای کنتراست را غیرفعال کنید:
window.isNavigationBarContrastEnforced = false
برای اطلاعات بیشتر، به درباره محافظت از نوار سیستم مراجعه کنید.