از inset ها در Views و Compose استفاده کنید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
اگر برنامه شما حاوی هر دو کد Compose و View است، ممکن است لازم باشد در مورد اینکه هر کدام از اینست های سیستمی باید استفاده کنند و اطمینان حاصل کنید که inset ها به نماهای خواهر و برادر ارسال می شوند، صریح باشید.
نادیده گرفتن ورودی های پیش فرض
هنگامی که صفحه نمایش شما دارای هر دو کد Views و Compose در یک سلسله مراتب است، ممکن است لازم باشد که ورودی های پیش فرض را لغو کنید. در این مورد، شما باید به صراحت بگویید که در کدام یک از اینست ها باید مصرف کرد و کدام یک باید آنها را نادیده گرفت.
به عنوان مثال، اگر بیرونیترین طرحبندی شما یک طرحبندی Android View است، باید ورودیهای موجود در سیستم View را مصرف کنید و آنها را برای Compose نادیده بگیرید. از طرف دیگر، اگر بیرونیترین چیدمان شما قابل ترکیب است، باید ورودیها را در Compose مصرف کنید و بر اساس آن، Composableهای AndroidView
را پاک کنید.
به طور پیشفرض، هر ComposeView
تمام ورودیها را در سطح مصرف WindowInsetsCompat
مصرف میکند. برای تغییر این رفتار پیشفرض، AbstractComposeView.consumeWindowInsets
را روی false
تنظیم کنید.
ارسال ورودی سازگار با عقب برای نماها
اگر برنامه شما حاوی کد Views است، ممکن است لازم باشد تأیید کنید که در دستگاههای دارای Android 10 (سطح API 29) یا پایینتر، ورودیها به نماهای خواهر و برادر ارسال میشوند. برای اطلاعات بیشتر به راهنمای نماهای لبه به لبه مراجعه کنید.
نمادهای نوار سیستم
فراخوانی enableEdgeToEdge
تضمین میکند که رنگهای نماد نوار سیستم با تغییر تم دستگاه بهروزرسانی میشوند.
در حالی که لبه به لبه میروید، ممکن است لازم باشد رنگهای نماد نوار سیستم را بهطور دستی بهروزرسانی کنید تا با پسزمینه برنامهتان تضاد داشته باشند. به عنوان مثال، برای ایجاد نمادهای نوار وضعیت نور:
کاتلین
WindowCompat.getInsetsController(window, window.decorView)
.isAppearanceLightStatusBars = false
جاوا
WindowCompat.getInsetsController(window, window.getDecorView())
.setAppearanceLightStatusBars(false);
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-08-21 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-08-21 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Use insets in Views and Compose\n\nIf your app contains both Compose and View code, you may need to be explicit\nabout which system insets each one should consume and ensure that insets are\ndispatched to sibling views.\n\nOverriding default insets\n-------------------------\n\nYou may need to override default insets when your screen has both Views and\nCompose code in the same hierarchy. In this case, you need to be explicit in\nwhich one should consume the insets, and which one should ignore them.\n\nFor example, if your outermost layout is an Android View layout, you should\nconsume the insets in the View system and ignore them for Compose.\nAlternatively, if your outermost layout is a composable, you should consume the\ninsets in Compose, and pad the `AndroidView` composables accordingly.\n\nBy default, each `ComposeView` consumes all insets at the\n`WindowInsetsCompat` level of consumption. To change this default behavior, set\n[`AbstractComposeView.consumeWindowInsets`](/reference/kotlin/androidx/compose/ui/platform/AbstractComposeView#(androidx.compose.ui.platform.AbstractComposeView).consumeWindowInsets())\nto `false`.\n\nBackward compatible inset dispatching for views\n-----------------------------------------------\n\nIf your app contains Views code, you may need to confirm that insets are dispatched\nto sibling views on devices that run Android 10 (API level 29) or lower. See the\n[edge-to-edge Views guide](/develop/ui/views/layout/edge-to-edge#backward-compatible-dispatching)\nfor more information.\n\nSystem bar icons\n----------------\n\nCalling `enableEdgeToEdge` ensures system bar icon colors update when the device\ntheme changes.\n\nWhile going edge-to-edge, you might need to manually update the system bar icon\ncolors so they contrast with your app's background. For example, to create light\nstatus bar icons: \n\n### Kotlin\n\n```kotlin\nWindowCompat.getInsetsController(window, window.decorView)\n .isAppearanceLightStatusBars = false\n```\n\n### Java\n\n```java\nWindowCompat.getInsetsController(window, window.getDecorView())\n .setAppearanceLightStatusBars(false);\n```"]]