डिसप्ले कटआउट, कुछ डिवाइसों का वह हिस्सा होता है जो डिसप्ले तक बड़ा होता है की जगह है. यह एज-टू-एज अनुभव देता है और ज़रूरी सेंसर मौजूद हैं.
![पोर्ट्रेट मोड में कटआउट का उदाहरण](https://developer.android.com/static/develop/ui/compose/images/system/cutouts_example_portrait.png?authuser=9&hl=hi)
![लैंडस्केप मोड में कटआउट का उदाहरण](https://developer.android.com/static/develop/ui/compose/images/system/cutouts_example_landscape.png?authuser=9&hl=hi)
Android, Android 9 (एपीआई लेवल 28) और Android 9 (एपीआई लेवल 28) पर चलने वाले डिवाइसों पर डिसप्ले कटआउट के साथ काम करता है उच्च. हालांकि, डिवाइस बनाने वाली कंपनियां भी, डिसप्ले कटआउट की सुविधा Android 8.1 या इससे पहले के वर्शन वाले डिवाइसों पर.
इस पेज में बताया गया है कि लिखें, जिसमें कटआउट एरिया— यानी एक से दूसरे किनारे तक पहुंचने पर भी काम करने का तरीका शामिल है डिसप्ले सरफ़ेस पर रेक्टैंगल, जिसमें कटआउट मौजूद है.
डिफ़ॉल्ट केस
डिफ़ॉल्ट रूप से, डिसप्ले कटआउट को विंडो इनसेट की जानकारी में शामिल किया जाता है. इस वजह से, फ़ॉलो करने पर आपका ऐप्लिकेशन डिसप्ले कटआउट एरिया में नहीं दिखेगा दिशा-निर्देशों की मदद से अपने ऐप्लिकेशन को एक से ज़्यादा उपयोगकर्ताओं तक पहुंचाएं.
उदाहरण के लिए, अगर आपको
Modifier.windowInsetsPadding(WindowInsets.safeContent)
या Modifier.windowInsetsPadding(WindowInsets.safeDrawing)
, आपका ऐप्लिकेशन
जो कटआउट वाले हिस्से में अपने-आप नहीं बनेंगे.
WindowInsets.safeContent
और WindowInsets.safeDrawing
दोनों में डिसप्ले कटआउट की जानकारी होती है. साथ ही, डिवाइस कटआउट की जगह नहीं ड्रॉ होगी
है.
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) WindowCompat.setDecorFitsSystemWindows(window, false) setContent { Box(Modifier.windowInsetsPadding(WindowInsets.safeContent)) { // Any composable inside here will avoid drawing behind cutouts } } }
इस तरीके को अपनी पसंद के मुताबिक बनाने के लिए, आपको कटआउट की जानकारी को मैनेज करना होगा खुद को बेहतर बनाएं.
कटआउट की जानकारी को मैन्युअल तरीके से मैनेज करना
कटआउट को इनमें से किसी भी तरीके से हैंडल किया जा सकता है:
WindowInsets.displayCutout
का इस्तेमाल किया जा रहा हैandroid:windowLayoutInDisplayCutoutMode
के साथ थीम मेनिफ़ेस्ट में सेटिंगwindow.attributes.layoutInDisplayCutoutMode
के साथWindow
पर, प्रोग्रामैटिक तरीके से विकल्प सेट करनाLocalView.current.rootWindowInsets.displayCutout
की मदद से, कटआउटPath
ऑब्जेक्ट को ऐक्सेस किया जा रहा है
लिखने के लिए, windowLayoutInDisplayCutoutMode
को इस पर सेट करने का सुझाव दिया जाता है
अपनी कुल थीम में default
डालें. इसके बाद, WindowInsets.displayCutout
का फ़ायदा पाएं
अपने कंपोज़ेबल में इनसेट को मैनेज करने के लिए:
Canvas(modifier = Modifier.fillMaxSize().windowInsetsPadding(WindowInsets.displayCutout)) { drawRect(Color.Red, style = Stroke(2.dp.toPx())) }
इस तरीके की मदद से, ज़रूरत पड़ने पर displayCutout
पैडिंग (जगह) का पालन किया जा सकता है,
या जहां ज़रूरत न हो वहां नज़रअंदाज़ करें.
इसके अलावा, वही सेटिंग लागू की जा सकती है जो व्यू कटआउट के लिए दिखती है
दस्तावेज़ सेटिंग के हिसाब से बताता है
गतिविधि वाली थीम android:windowLayoutInDisplayCutoutMode
को
विकल्प या विंडो एट्रिब्यूट को सेट करने का तरीका
window.attributes.layoutInDisplayCutoutMode =
LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT
. हालांकि, इसके बाद कटआउट मोड लागू होता है
पूरी गतिविधि पर लागू होता है और इसे हर एक कंपोज़ेबल के हिसाब से कंट्रोल नहीं किया जा सकता.
कुछ कंपोज़ेबल में डिसप्ले कटआउट के हिसाब से बदलाव करें. हालांकि, अन्य कंपोज़ेबल में ऐसा न करें. इसके लिए,
WindowInset.displayCutout
. इस एपीआई की मदद से, कटआउट को ऐक्सेस किया जा सकता है
जानकारी दें.
सबसे सही तरीके
डिसप्ले कटआउट के साथ काम करते समय, इन बातों का ध्यान रखें:
- यूज़र इंटरफ़ेस (यूआई) के अहम एलिमेंट के प्लेसमेंट को ध्यान में रखें. ऐसा न होने दें कटआउट एरिया की मदद से किसी भी अहम टेक्स्ट, कंट्रोल या अन्य जानकारी को छिपाया जा सकता है.
- ऐसे इंटरैक्टिव एलिमेंट को न तो रखें और न ही उनका दायरा बढ़ाएं, जिन्हें फ़ाइन-टचस्क्रीन की ज़रूरत हो ज़रूरत होती है. टच की संवेदनशीलता कम हो सकती है: कटआउट एरिया.
- एक से दूसरे किनारे तक के दिशा-निर्देशों का पालन करते समय, कटआउट की जानकारी को
safeDrawing
/safeContent
इनसेट. - जहां भी हो सके,
Modifier.windowInsetsPadding(WindowInsets.safeDrawing)
का इस्तेमाल करें ताकि आपके कॉन्टेंट पर लागू करने के लिए सही पैडिंग (जगह) तय की जा सके. बंद करें स्टेटस बार की ऊंचाई की हार्डकोडिंग न करें, क्योंकि इससे ओवरलैप या कट-ऑफ़ हो सकता है कॉन्टेंट.
कटआउट की मदद से देखें कि आपका कॉन्टेंट कैसे रेंडर होता है
अपने ऐप्लिकेशन की सभी स्क्रीन और अनुभवों की जांच ज़रूर कर लें. ऐसे डिवाइसों पर टेस्ट करें जिनमें अलग-अलग तरह के कटआउट का इस्तेमाल करें. अगर आपके पास कटआउट की मदद से, किसी भी डिवाइस या एम्युलेटर पर सामान्य कटआउट कॉन्फ़िगरेशन को सिम्युलेट किया जा सकता है Android 9 या इसके बाद वाले वर्शन पर काम करने के लिए, यह तरीका अपनाएं:
- डेवलपर के लिए सेटिंग और टूल चालू करें.
- डेवलपर के लिए सेटिंग और टूल की स्क्रीन पर, नीचे की ओर स्क्रोल करके ड्रॉइंग सेक्शन पर जाएं और कटआउट वाले डिसप्ले को सिम्युलेट करें को चुनें.
- कटआउट टाइप चुनें.
तीसरी इमेज. आपका कॉन्टेंट रेंडर कैसे होता है, यह जांचने के लिए डेवलपर के लिए सेटिंग और टूल का इस्तेमाल करें.
आपके लिए सुझाव
- ध्यान दें: JavaScript बंद होने पर लिंक टेक्स्ट दिखता है
- Compose में विंडो इनसेट
- ग्राफ़िक्स मॉडिफ़ायर
- स्टाइल पैराग्राफ़