پلتفرم اندروید وظیفه ترسیم رابط کاربری سیستم مانند نوار وضعیت و نوار ناوبری را بر عهده دارد. این رابط کاربری سیستم صرف نظر از اینکه کاربر از کدام برنامه استفاده می کند، نمایش داده می شود.
WindowInsets
اطلاعاتی در مورد رابط کاربری سیستم ارائه می دهد تا اطمینان حاصل کند که برنامه شما در ناحیه درست طراحی می شود و رابط کاربری شما توسط رابط کاربری سیستم مبهم نیست.

در اندروید 14 (سطح API 34) و پایینتر، رابط کاربری برنامه شما بهطور پیشفرض زیر نوارهای سیستم و برشهای نمایشگر کشیده نمیشود.
در Android 15 (سطح API 35) و بالاتر، زمانی که برنامه شما SDK 35 را هدف قرار داد، برنامه شما زیر نوارهای سیستم و بریدگیهای نمایشگر کشیده میشود. این منجر به تجربه کاربری یکپارچهتر میشود و به برنامه شما امکان میدهد تا از فضای پنجره موجود برای خود نهایت استفاده را ببرد.
نمایش محتوا در پشت رابط کاربری سیستم ، لبه به لبه نامیده می شود. در این صفحه، در مورد انواع مختلف inset ها، نحوه استفاده از لبه به لبه، و نحوه استفاده از API های داخلی برای متحرک سازی UI خود و اطمینان از اینکه محتوای برنامه شما توسط عناصر UI سیستم پنهان نمی شود، آشنا می شوید.
درج اصول
هنگامی که یک برنامه لبه به لبه می شود، باید اطمینان حاصل کنید که محتوا و تعاملات مهم توسط رابط کاربری سیستم مبهم نیست. به عنوان مثال، اگر دکمه ای در پشت نوار ناوبری قرار داده شود، ممکن است کاربر نتواند روی آن کلیک کند.
اندازه UI سیستم و اطلاعات مربوط به محل قرارگیری آن از طریق inset ها مشخص می شود.
هر بخش از UI سیستم دارای یک نوع ورودی متناظر است که اندازه و محل قرارگیری آن را توصیف می کند. به عنوان مثال، نوار وضعیت اندازه و موقعیت نوار وضعیت را ارائه می دهد، در حالی که نوارهای ناوبری اندازه و موقعیت نوار پیمایش را ارائه می دهند. هر نوع اینست از چهار بعد پیکسل تشکیل شده است: بالا، چپ، راست و پایین. این ابعاد مشخص میکند که رابط کاربری سیستم تا چه اندازه از طرفهای مربوطه پنجره برنامه امتداد دارد. بنابراین، برای جلوگیری از همپوشانی با آن نوع رابط کاربری سیستم، رابط کاربری برنامه باید با آن مقدار درج شود.
این انواع داخلی اندروید از طریق WindowInsets
در دسترس هستند:
ورودی هایی که نوارهای وضعیت را توصیف می کنند. اینها نوارهای رابط کاربری بالای سیستم هستند که حاوی نمادهای اعلان و سایر نشانگرها هستند. | |
نوار وضعیت برای زمانی که آنها قابل مشاهده هستند درج می شود. اگر نوارهای وضعیت در حال حاضر پنهان هستند (به دلیل وارد شدن به حالت تمام صفحه همهجانبه)، در این صورت نوارهای وضعیت اصلی خالی خواهند بود، اما این ورودی ها خالی نیستند. | |
ورودیهایی که نوارهای ناوبری را توصیف میکنند. اینها نوارهای رابط کاربری سیستم در سمت چپ، راست یا پایین دستگاه هستند که نوار وظیفه یا نمادهای پیمایش را توصیف می کنند. اینها می توانند در زمان اجرا بر اساس روش پیمایش ترجیحی کاربر و تعامل با نوار وظیفه تغییر کنند. | |
نوار پیمایش برای زمانی که آنها قابل مشاهده هستند درج می شود. اگر نوارهای پیمایش در حال حاضر پنهان هستند (به دلیل وارد شدن به حالت تمام صفحه همهجانبه)، در این صورت نوارهای ناوبری اصلی خالی خواهند بود، اما این ورودی ها خالی نیستند. | |
قسمتی که دکوراسیون پنجره رابط کاربری سیستم را در صورتی که در یک پنجره آزاد شکل است، مانند نوار عنوان بالا، توصیف می کند. | |
نوار عنوان برای زمانی که قابل مشاهده هستند درج می شود. اگر نوارهای زیرنویس در حال حاضر پنهان هستند، در این صورت نوارهای زیرنویس اصلی خالی خواهند بود، اما این ورودیها خالی نیستند. | |
اتحاد نوارهای سیستمی که شامل نوارهای وضعیت، نوارهای پیمایش و نوار شرح است. | |
نوار سیستم برای زمانی که آنها قابل مشاهده هستند درج می شود. اگر نوارهای سیستم در حال حاضر پنهان هستند (به دلیل وارد شدن به حالت تمام صفحه همهجانبه)، در این صورت نوارهای اصلی سیستم خالی خواهند بود، اما این ورودی ها خالی نیستند. | |
ورودیهایی که میزان فضای پایینی را که صفحهکلید نرمافزار اشغال میکند را توصیف میکند. | |
ورودیهایی که میزان فضایی را که صفحهکلید نرمافزار قبل از انیمیشن صفحهکلید فعلی اشغال کرده بود، توصیف میکند. | |
ورودیهایی که میزان فضایی را که صفحهکلید نرمافزار بعد از انیمیشن صفحهکلید فعلی اشغال میکند را توصیف میکند. | |
نوعی از ورودیها که اطلاعات دقیقتری را درباره رابط کاربری ناوبری توصیف میکند، و میزان فضایی را که «ضربهها» توسط سیستم و نه برنامه انجام میشود، ارائه میدهد. برای نوارهای پیمایش شفاف با ناوبری اشاره ای، برخی از عناصر برنامه را می توان از طریق رابط کاربری ناوبری سیستم لمس کرد. | |
عنصر قابل ضربه زدن برای زمانی که قابل مشاهده هستند درج می شود. اگر عناصر قابل ضربه زدن در حال حاضر پنهان هستند (به دلیل وارد شدن به حالت تمام صفحه همهجانبه)، آنگاه ورودی های اصلی عناصر قابل لمس خالی خواهند بود، اما این ورودی ها خالی نیستند. | |
ورودیها نشاندهنده مقدار ورودیهایی هستند که سیستم حرکات را برای پیمایش رهگیری میکند. برنامهها میتوانند بهطور دستی مدیریت تعداد محدودی از این حرکات را از طریق | |
زیرمجموعهای از ژستهای حرکتی سیستم که همیشه توسط سیستم مدیریت میشود و نمیتوان از طریق | |
ورودی ها نشان دهنده میزان فاصله مورد نیاز برای جلوگیری از همپوشانی با بریدگی نمایشگر (بریدگی یا سوراخ سوزنی) هستند. | |
قسمت های داخلی نمایانگر نواحی منحنی نمایشگر آبشار است. نمایشگر آبشاری دارای نواحی منحنی در امتداد لبههای صفحه است که در آن صفحه شروع به پیچیدن در کنارههای دستگاه میکند. |
این انواع با سه نوع درج "ایمن" خلاصه می شوند که تضمین می کند محتوا مبهم نیست:
این انواع درج "ایمن" از محتوا به روش های مختلف محافظت می کنند، بر اساس درج های پلت فرم زیرین:
- از
WindowInsets.safeDrawing
برای محافظت از محتوایی که نباید زیر هیچ رابط کاربری سیستمی کشیده شود، استفاده کنید. این رایج ترین استفاده از inset ها است: برای جلوگیری از ترسیم محتوایی که توسط رابط کاربری سیستم (چه به طور جزئی یا کامل) مبهم است. - از
WindowInsets.safeGestures
برای محافظت از محتوا با حرکات استفاده کنید. این کار از تداخل حرکات سیستم با حرکات برنامه (مانند موارد مربوط به صفحات پایین، چرخ فلک ها یا در بازی ها) جلوگیری می کند. - از
WindowInsets.safeContent
به عنوان ترکیبی ازWindowInsets.safeDrawing
وWindowInsets.safeGestures
استفاده کنید تا مطمئن شوید محتوا همپوشانی بصری و همپوشانی حرکتی ندارد.
برای شما توصیه می شود
- توجه: وقتی جاوا اسکریپت خاموش است، متن پیوند نمایش داده می شود
- اجزای متریال و طرحبندی
- برای نوشتن،
CoordinatorLayout
مهاجرت کنید - ملاحظات دیگر