با کمال افتخار اعلام میکنیم که Jetpack WindowManager 1.5.0 اکنون پایدار شده است!
این نسخه بر پایه قوی سازگاری در WindowManager بنا شده است و ایجاد رابطهای کاربری جذاب و تطبیقپذیر که در تمام اندازههای صفحه نمایش عالی به نظر میرسند را آسانتر میکند. با رشد اکوسیستم اندروید، کاربران بیش از هر زمان دیگری با برنامهها در طیف وسیعتری از دستگاهها تعامل دارند: از تلفنها و دستگاههای تاشو گرفته تا تبلتها، نمایشگرهای متصل، کرومبوکها و حتی نمایشگرهای خودرو در حالت پارک.
WindowManager 1.5 بر ارائه ابزارهای بهتر برای این محیط دستگاههای متنوع تمرکز دارد.
ویژگیهای جدید WindowManager 1.5
این نسخه پایدار، نقاط شکست جدیدی را برای صفحه نمایشهای بسیار بزرگ معرفی میکند، API تعبیه فعالیت را بهبود میبخشد و انعطافپذیری بیشتری برای محاسبه معیارهای پنجره فراهم میکند.
کلاسهای جدید اندازه پنجره: بزرگ و خیلی بزرگ
بزرگترین بهروزرسانی در نسخه ۱.۵، اضافه شدن دو کلاس جدید برای اندازه پنجرهها است: بزرگ (Large) و خیلی بزرگ (Extra-large).
کلاسهای اندازه پنجره، مجموعه رسمی و مورد نظر ما از نقاط توقف نمای صفحه هستند که به شما در طراحی و توسعه طرحبندیهای تطبیقی کمک میکنند. در نسخه ۱.۵، ما این راهنما را برای صفحات نمایشی که فراتر از تبلتهای معمولی هستند، گسترش میدهیم.
نقاط شکست عرض جدید به شرح زیر هستند:
- بزرگ: برای عرضهای بین ۱۲۰۰dp و ۱۶۰۰dp
- خیلی بزرگ: برای عرضهای ≥1600dp

کلاسهای مختلف اندازه پنجره بر اساس عرض نمایشگر.
چرا اینها مهم هستند؟
با شروع از اندروید ۱۶ QPR1 بتا ۲، اندروید از نمایشگرهای متصل پشتیبانی میکند و به کاربران این امکان را میدهد که یک نمایشگر خارجی را به دستگاه خود وصل کرده و آن را به ابزاری شبیه به دسکتاپ با صفحه نمایش بزرگ تبدیل کنند.

تلفن به یک نمایشگر خارجی متصل است و یک جلسه دسکتاپ روی نمایشگر خارجی دارد.
با وجود این ویژگی جدید، راهنماییهای کارشناسانه برای گنجاندن نمایشگرهای بزرگتر بسیار مهم است.
روی این سطوح بسیار بزرگ، صرفاً افزایش مقیاس طرحبندی گسترده تبلت همیشه بهترین تجربه کاربری نیست. برای مثال، یک نرمافزار ایمیل ممکن است به راحتی دو پنل (یک صندوق پستی و یک پیام) را در کلاس اندازه پنجره گسترده نشان دهد. اما روی یک مانیتور رومیزی بسیار بزرگ، نرمافزار ایمیل میتواند به زیبایی سه یا حتی چهار پنل را نمایش دهد - شاید یک صندوق پستی، یک لیست پیام، محتوای کامل پیام و یک پنل تقویم/وظایف، همه به طور همزمان.
با ارائه نقاط توقف رسمی برای اندازههای نمایشگر بسیار بزرگ، WindowManager 1.5 به شما سیگنال واضحی میدهد تا طرحبندیهایی را که بهطور خاص برای یک تجربه دسکتاپ پربار و پر از اطلاعات طراحی شدهاند، معرفی کنید.
کلاسهای اندازه پنجره را میتوان با استفاده از تابع computeWindowSizeClass() محاسبه کرد که یک تابع افزونه کتابخانه androidx.window.core.layout است که نوع Set<WindowSizeClass> را بسط میدهد.
برای گنجاندن کلاسهای جدید اندازه پنجره در پروژه خود، کافیست تابع را از مجموعه WindowSizeClass.BREAKPOINTS_V2 به جای WindowSizeClass.BREAKPOINTS_V1 فراخوانی کنید:
val currentWindowMetrics = WindowMetricsCalculator.getOrCreate() .computeCurrentWindowMetrics(LocalContext.current) val sizeClass = WindowSizeClass.BREAKPOINTS_V2 .computeWindowSizeClass(currentWindowMetrics)
سپس وقتی مطمئن شدید که برنامه شما حداقل آن مقدار فضا را دارد، طرحبندی صحیح را اعمال کنید:
if(sizeClass.isWidthAtLeastBreakpoint(
WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){
...
// window is at least 1200 dp wide
}کتابخانههای تطبیقی
کتابخانه Compose Material 3 Adaptive به شما کمک میکند تا رابطهای کاربری تطبیقپذیر ایجاد کنید که به طور خودکار خود را با توجه به پیکربندیهای فعلی پنجره مانند کلاسهای اندازه پنجره یا حالتهای دستگاه تطبیق میدهند.
خبر خوب این است که این کتابخانه از قبل با نقاط شکست جدید بهروز شده است! از نسخه ۱.۲ (که اکنون در مرحله انتشار است)، توابع پیشفرض دستورالعمل pane scaffold از کلاسهای اندازه عرض پنجره Large و Extra-large پشتیبانی میکنند.
شما فقط باید با اعلام اینکه میخواهید از نقاط شکست جدید استفاده کنید، در فایل ساخت Gradle خود، این گزینه را انتخاب کنید:
currentWindowAdaptiveInfo( supportLargeAndXLargeWidth = true)
پیشرفتهای اضافی
- تعبیه فعالیت — ذخیره و بازیابی خودکار : WindowManager اکنون میتواند به طور خودکار وضعیت تقسیمبندیهای تعبیه فعالیت شما را ذخیره و بازیابی کند. این امر به حفظ طرحبندی کاربر در طول بازآفرینی فرآیند کمک میکند و منجر به یک تجربه پایدارتر و سازگارتر میشود. توسعهدهندگان دیگر نیازی به ذخیره و بازیابی دستی وضعیت ندارند، بلکه میتوانند با تنظیم ویژگی EmbeddingConfiguration#isAutoSaveEmbeddingState ، به سادگی حالت خودکار را فعال کنند.
- WindowMetrics توسعهیافته : اکنون میتوانید WindowMetrics را از یک زمینه برنامه، نه فقط یک زمینه فعالیت، محاسبه کنید. این انعطافپذیری بیشتری برای دسترسی به اطلاعات پنجره از بخشهای مختلف برنامه شما فراهم میکند.
چگونه شروع کنیم
برای شروع استفاده از کلاسهای جدید Large و Extra-large size و سایر ویژگیهای نسخه ۱.۵ در پروژههای اندروید خود، وابستگیهای برنامه خود را در build.gradle.kts به آخرین نسخه پایدار بهروزرسانی کنید:
dependencies {
implementation("androidx.window:window:1.5.0")
// or, if you're using the WindowManager testing library:
testImplementation("androidx.window:window-testing:1.5.0")
}WindowManager 1.5 گامی دیگر به جلو برای ایجاد برنامههای کاملاً سازگار است که در فرمفاکتورهای اندروید اجرا میشوند. برای مشاهده لیست کامل تغییرات و رفع اشکالات، به یادداشتهای انتشار رسمی مراجعه کنید.
کدنویسی خوبی داشته باشید!
ادامه مطلب

اخبار محصول
ما مفتخریم که از یک نقطه عطف مهم در نزدیکتر کردن محاسبات موبایل و دسکتاپ در اندروید خبر دهیم: پشتیبانی از نمایشگرهای متصل با انتشار اندروید ۱۶ QPR3 به طور عمومی در دسترس قرار گرفته است!
Francesco Romano • ۷ دقیقه مطالعه

اخبار محصول
گردش کار و نیازهای هوش مصنوعی هر توسعهدهنده منحصر به فرد است و مهم است که بتوانید انتخاب کنید هوش مصنوعی چگونه به توسعه شما کمک میکند. در ژانویه، ما قابلیت انتخاب هر مدل هوش مصنوعی محلی یا از راه دور را برای تقویت عملکرد هوش مصنوعی در اندروید استودیو معرفی کردیم.
Matthew Warner • ۲ دقیقه مطالعه

اخبار محصول
اندروید استودیو پاندا ۳ اکنون پایدار و آماده استفاده در محیط تولید است. این نسخه به شما کنترل و سفارشیسازی بیشتری بر روی گردشهای کاری مبتنی بر هوش مصنوعی میدهد و ساخت برنامههای اندروید با کیفیت بالا را آسانتر از همیشه میکند.
Matt Dyor • ۳ دقیقه مطالعه
در جریان باشید
جدیدترین بینشهای توسعه اندروید را به صورت هفتگی در صندوق ورودی خود دریافت کنید.



